SysTick的时钟都有哪些来源? SysTick延期初值-1是基于什么考虑?
时间: 2024-02-19 13:00:20 浏览: 123
STM32F0(SysTick).zip_F0有systick?_STM32F030_stm32f0_zip
SysTick的时钟来源可以是内部时钟或外部时钟。在内部时钟模式下,时钟源来自于系统时钟(SysClk)。在外部时钟模式下,时钟源由外部时钟引脚提供。
SysTick延期初值-1是基于时钟源频率和SysTick计数器的位宽来考虑的。SysTick计数器是一个24位的计数器,因此可以计数0~16777215个时钟周期。当SysTick计数器减到0时,SysTick异常会被触发。为了设置SysTick计数器的初始值,需要先计算延迟周期数,然后将其减去1,以防止SysTick异常提前触发。例如,如果时钟源的频率为100MHz,SysTick的计数器位宽为24位,而我们想要延迟1ms,则需要设置SysTick的初值为99999(即100000-1),因为1ms内有100000个时钟周期。
阅读全文