STM32延时函数分析
由于fac_ms基数为9000 所以假设nms=1则 倒计时时间9000/9M=0.001s=1ms就是延时1ms
所以最大定时时间 T=2^24/9000=1864ms
延时实例:
while(1)
{
LED0=0;
delay_ms(500);
LED0=1;
delay_ms(500);
}


改变最大延时方法: 降低PLL倍频,计算得到系统新频率.


改变最大延时方法: 降低PLL倍频,计算得到系统新频率.
int main(void)
{
Stm32_Clock_Init(4);
delay_init(32);
led_init();
while(1)
{
LED0=0;
delay_ms(3000);
LED0=1;
delay_ms(3000);
}
}


此时最大延时 由于SYSCLK=32M 所以Systick=4M 既fac_ms=4000
Tmax=2^24/4000=4194ms
如果设置超过4194发生溢出,定时就不准了
例子:


参考文献:<<例说STM32>>
<>


此时最大延时 由于SYSCLK=32M 所以Systick=4M 既fac_ms=4000
Tmax=2^24/4000=4194ms
如果设置超过4194发生溢出,定时就不准了
例子:
int main(void)
{
Stm32_Clock_Init(4);
delay_init(32);
led_init();
while(1)
{
LED0=0;
delay_ms(4200);
LED0=1;
delay_ms(4200);
}
}

参考文献:<<例说STM32>>
<
评论