STM32系统时钟配置,滴答定时器配置相关

Posted on 2018-08-21 19:14  自由一份子  阅读(1268)  评论(0编辑  收藏  举报

以后实在找不到问题出现在哪里,注意还有这么个地方需要留意:

今天在调试滴答定时器,找半天找不到延时为什么不准确,原来以前的代码中,“SYSCLK_FREQ_72MHz”被写成了64MHz了,把这里重新改为72MHz就可以了,走过的路过的,希望这个提醒可以对大家有所帮助,不过大家还是要看实际情况。

 

然后关于滴答定时器,一直总是思考错误的地方:

 

滴答定时器已经不止一次的配置过了,但是时间一长,又会忘,主要就是会忘时钟配置问题。

今天在配置时,一直考虑不清楚“fac_us”为什么是“SystemCoreClock/8000000”,我的疑问主要纠结在:

时钟配置假如配置为72MHz,第一行代码已经选择为系统时钟的8分频,也就是滴答定时器时钟为9MHz,下面的“fac_us”需要得到的是时钟周期,总以为应该是在9MHz的基础上再除以“10000000”,这样才得到的是微秒,其实这是错的,滴答定时器时钟已经8分频,此时只需要将“fac_us”赋值为8分频之后的“微秒”数值即可,也就是72MHz/8MHz,这样才是真正的1us,也就是9个时钟周期为1us