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

2020-01-07 19:25发布

  使用systick定时,运行1秒时间,CCSTEP显示168000000左右正常,但实际走了3秒时间,比标准时间慢,同样的硬件条件下,重新找了一个Demo,删掉无用的部分,只剩systick定时,1秒的时间又是准的,此时CCSTEP同样显示168000000左右,不知道有没有人知道这个问题可能的原因,配置部分找了几遍,也看不出啥异常,软件在F103上面是正常的,移植到F407就出了一堆问题,定时不准是个大问题,正Debug中。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
20061002838
1楼-- · 2020-01-07 20:37
24位定时器,有没有考虑溢出的问题?
laoshuhunya
2楼-- · 2020-01-08 00:37
一般来说误差呈倍数关系,基本上是配置问题。
coleyao
3楼-- · 2020-01-08 01:34
 精彩回答 2  元偷偷看……
XA144F
4楼-- · 2020-01-08 02:42
不知你的hse和实际的晶振差了多少,是不是晶振是8m但hse定义的是25000000?
liuxiangyub
5楼-- · 2020-01-08 04:48
以前做某电力设备时,也遇到过407定时有抖动问题,我是定时器里定时采样SPI-ADC,最终导致采样结果有抖动。
当时 我认为是浮点运算导致定时器中断无法及时响应,删除FFT浮点运算后抖动不再有。
后来是软件做了修改,只取其中一小段数据来运算。
coleyao
6楼-- · 2020-01-08 04:56
本帖最后由 coleyao 于 2019-5-28 08:31 编辑
XA144F 发表于 2019-5-28 07:59
不知你的hse和实际的晶振差了多少,是不是晶振是8m但hse定义的是25000000?


   非常感谢,确实晶振是8M的,以前M0、M3还有Mega12、MSP430一直都用8M晶振,原以为M4默认也是8M晶振的,没想到居然默认是25M晶振!
   另外感慨一句,从M3移植到M4也太费事了,不光要改端口初始化部分的时钟使能函数参数,还有老版本库文件不支持UART7的问题,加上这个晶振频率的修改,还有没暴露出来的问题,感觉比从M0改M3都费事!

一周热门 更多>