[STM32C0] 怎样解决STM32C0 SysTick定时任务误差问题?

[复制链接]
800|68
hilahope 发表于 2026-1-21 12:20 | 显示全部楼层
SysTick 可选择「内核时钟(HCLK)」或「HCLK/8」,选错会直接导致定时基数错误
everyrobin 发表于 2026-1-21 14:11 | 显示全部楼层
通用定时器是独立于内核的外设,不受软件中断阻塞影响
wwppd 发表于 2026-1-21 14:47 | 显示全部楼层
SysTick 是基于 单片机 时钟计数的,而 HCLK 通常由内部 HSI 振荡器提供。
timfordlare 发表于 2026-1-21 16:43 | 显示全部楼层
使用稳定时钟源              
saservice 发表于 2026-1-21 17:16 | 显示全部楼层
即使使用HSE,也可能有ppm级偏差。通过RTC或外部GPS进行周期性校准
朝生 发表于 2026-1-22 06:59 | 显示全部楼层
通过调整SysTick的时钟源和预分频,确保SysTick计数器频率与任务执行周期匹配,从而减少误差。
pentruman 发表于 2026-1-22 10:09 | 显示全部楼层
不要用内部 HSI,焊接一个 8MHz 或 12MHz 的外部晶振,通过 PLL 倍频到 48MHz,这样 SysTick 的计数基准就非常精准了。
updownq 发表于 2026-1-22 10:41 | 显示全部楼层
若实际频率偏离预期,需通过寄存器 CALIB 进行 动态校准,补偿晶振制造公差
643757107 发表于 2026-1-22 16:00 | 显示全部楼层
SysTick 中断触发后,CPU 可能正在执行更高优先级的中断 / 临界区代码,导致定时任务不能立刻执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0