OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10380|回复: 6

STMF103RCT6转103C8T6延时函数不准

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2018-6-17
在线时间
7 小时
发表于 2018-7-30 11:37:33 | 显示全部楼层 |阅读模式
1金钱
STMF103RCT6程序移植到103C8T6后delay延时函数不准,大约变慢了十倍,是按下面的教程改的,求助是怎么回事
STM32F103RCT6移植到STM32F103C8T6注意事项
1,修改IC为STC32F103C8
2,修改晶振为8.0M
3,修改C/C++宏定义,由STM32F10X_HD,USE_STDPERIPH_DRIVER 改为 STM32F10X_MD,USE_STDPERIPH_DRIVER
4,替换启动文件,由startup_stm32f10x_hd.s修改为startup_stm32f10x_md.s
到这里已经没有报错了
5,重新分配各模块引脚定义
这一步做完以后才发现,程序好像跑的慢了10来倍,
群里求助,说是倍频没有设置好,找到一个设置倍频的代码后,发现还是不行.
再搜索原子论坛有人同样遇到相同的问题,在某位大神的回复中找到了答案,就是第6步,
6,系统初始化时调用 SystemInit();
调用SystemInit();以后马上就正常了,



最佳答案

查看完整内容[请看2#楼]

你的system_stm32f10x.c有没有定义VECT_TAB_SRAM这个宏,我以前也是定义了这个延时变成大约10倍
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
发表于 2018-7-30 11:37:34 | 显示全部楼层
你的system_stm32f10x.c有没有定义VECT_TAB_SRAM这个宏,我以前也是定义了这个延时变成大约10倍
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4518
金钱
4518
注册时间
2018-5-11
在线时间
945 小时
发表于 2018-7-30 12:26:25 | 显示全部楼层
你这是求助,还是分享?
不是已经解决了么?
变慢是因为时钟没有初始化,
你的两个启动文件有差异,后者没有调用SystemInit()
所以你手工调用一下就正常了。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2018-6-17
在线时间
7 小时
 楼主| 发表于 2018-7-30 12:46:42 | 显示全部楼层
warship 发表于 2018-7-30 12:26
你这是求助,还是分享?
不是已经解决了么?
变慢是因为时钟没有初始化,

求助,我按我发的步骤改了还是慢,SystemInit()也调用了
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4518
金钱
4518
注册时间
2018-5-11
在线时间
945 小时
发表于 2018-7-30 14:05:35 | 显示全部楼层
本帖最后由 warship 于 2018-7-30 15:11 编辑
JCDW 发表于 2018-7-30 12:46
求助,我按我发的步骤改了还是慢,SystemInit()也调用了

先用我的这个延时函数试试
http://www.openedv.com/forum.php?mod=viewthread&tid=275994&extra=用其中第4楼的delay_init()完全替换掉你现在的delay_init()
其它先不要管。
如果还不正常,说明晶体停振了。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

19

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2018-9-3
在线时间
50 小时
发表于 2019-11-26 17:29:57 | 显示全部楼层
查看一下MD的启动文件里有没有把IMPORT  SystemInit                   LDR     R0, =SystemInit                  BLX     R0 这三行的内容注释掉,如果注释了去掉就好了
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2021-3-11
在线时间
4 小时
发表于 2021-10-4 19:13:33 | 显示全部楼层
stm32f103c8t6的启动文件startup_stm32f10x_md.s第134到136行被注释掉了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 05:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表