STMCU小助手
发布时间:2022-12-8 16:00
|
前几天调了1块F103ZET6的开发板,用了个系统定时器,感觉不准,最终找到原因是因为选错了时钟源。
系统定时器是是Core_cm3和Core_cm4内核均存在的定时器 时器和2个看门狗定时器(独立的和窗口型)。 如果选择 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK)则为0,选择内部时钟72M。 若选择SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8),则系统时钟72M的8分频, 网上很多说把SysTick_CLKSource_HCLK_Div8叫做外部分始时钟,不知道是啥原因? 系统定时器时钟频率为9M 也就是这里我用错了时钟源导致系统定时器不准!! 这是原因1,还有一个原因在下面解释。
滴答定时器配置
时钟配置为72MHz,第一行代码已经选择为滴答定时器系统时钟的8分频,也就是滴答定时器时钟为9MHz, 下面的“fac_us”需要得到的是时钟周期,即1us(1个fac_us)需要9个时钟周期,1个fac_ms需要9000个时钟周期。 以上就是对系统定时器计数不准的解释。 |
微信公众号
手机版