STM32delay函数应用应用与说明
对与32中的delay函数有很多中形式可以使用,这里提供一些自己使用遇到过的函数类型。
Cortex M4内核编程手册有关时钟系统的内容
p230
SysTick timer (STK)
The processor has a 24-bit system timer, SysTick, that counts down from the reload value to zero, reloads (wraps to) the value in the STK_LOAD register on the next clock edge, then counts down on subsequent clocks.
When the processor is halted for debugging the counter does not decrement.
处理器有一个24位的系统计时器(SysTick),这个定时器从装载值进行递减,知道0为止,在下一个时钟边缘对STK_LOAD中的值进行重载入,然后在后续的时钟中递减计数。
在对处理器进行暂停调试的时候,计数器不会减小。
在arm体系中与时钟有关的寄存器是:STK_CTRL STK_LOAD STK_VAL STK_CALIB是这四个寄存器
在明确了以上内容之后,利用STM32的内部SysTick来实现延时,这样既不占用中断,也不会占用系统定时器。
定时函数的实现
delay_init 函数
该函数用来初始化2个重要参数:fac_us以及fac_ms;tongshi ba SysTick的时钟源选择位外部时钟,在不加入系统的时候,延时初始化函数的代