请教一个stm32F407 systick时间不准的问题

2020-01-07 19:25发布

  使用systick定时,运行1秒时间,CCSTEP显示168000000左右正常,但实际走了3秒时间,比标准时间慢,同样的硬件条件下,重新找了一个Demo,删掉无用的部分,只剩systick定时,1秒的时间又是准的,此时CCSTEP同样显示168000000左右,不知道有没有人知道这个问题可能的原因,配置部分找了几遍,也看不出啥异常,软件在F103上面是正常的,移植到F407就出了一堆问题,定时不准是个大问题,正Debug中。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
carefree1986
1楼-- · 2020-01-08 07:49
coleyao 发表于 2019-5-28 07:54
时钟变量放到Debug窗口看过,3个时钟频率分别是168M、84M、42M,没有问题,SysTick_Config()函数的输 ...

Debug窗口看到的频率,好像有时候不对,还是要看实际运行效果
tomzbj
2楼-- · 2020-01-08 08:14
 精彩回答 2  元偷偷看……
Excellence
3楼-- · 2020-01-08 09:10
coleyao 发表于 2019-5-28 08:28
非常感谢,确实晶振是8M的,以前M0、M3还有Mega12、MSP430一直都用8M晶振,原以为M4默认也是8M晶振的 ...

MARK....................
coleyao
4楼-- · 2020-01-08 11:24
本帖最后由 coleyao 于 2019-5-28 09:13 编辑
tomzbj 发表于 2019-5-28 08:47
以及GPIO的寄存器BSRR/BRR居然改成BSRRH/BSRRL了,实在是闲得蛋疼。。。


  谢谢,这个已经改过了,而且BSRR对应BSRRL,BRR对应BSRRH。突然感觉我英文都没学好,为啥L(低电平)对应位设置,H(高电平)对应位清零!
tomzbj
5楼-- · 2020-01-08 15:51
coleyao 发表于 2019-5-28 09:12
谢谢,这个已经改过了,而且BSRR对应BSRRL,BRR对应BSRRH。突然感觉我英文都没学好,为啥L(低电平)对 ...

其实是BSRRL在低地址,BSRRH在高地址吧。。
问题是作用完全没变,干嘛要改呢
cloudboy
6楼-- · 2020-01-08 20:30
F4的那个库默认是25M的晶振,我刚开始用的时候也奇怪,觉得官方Discovery的板子应该不会有问题,结果发现板子上面晶振是8M,但是库里面默认写的是25M,贼坑

一周热门 更多>