基于stm32的精确延时利用系统滴答systick
利用系统滴答定时器来实现精确延时,需要以下五步:
1、设置滴答定时器的时钟,通过设置其控制寄存器,选择外部时钟,即为系统时钟的八分之一,若系统时钟为72M,则滴答定时器时钟为9M。即定时一秒需要9M个时钟周期。
2、设置滴答定时器的重装载寄存器的数值,即需要延时的时钟周期数。如:若需要延时20微秒,则重装载值为20*9.若要延时20毫秒,则设置重装载值为20*9000.
3、清空滴答定时器当前值寄存器的值,使之为零,以便使能计数时能够从设定值开始倒数计时。
4、设置滴答定时器的控制寄存器,开始倒计数。
5、查询滴答定时器的状态位,定时时间到,关闭定时器,清空定时器当前值。
void delay_init(u8 SYSCLK)
{
}
void Delay_us(u32 nus)
{
do
{
}
}
或者
void Delay_us(u32 Nus)
{
}