考虑到一些情况下,无法使用系统定时或者定时器,而进行的时间计算。
STM32F1系列,对于72Mhz来说
void my_delay_ms(u32 ms)
{//对于stm32f1系列 72mhz大致是1ms
u16 i = 0;
while(ms--)
{
i = 4050;
while(i--);
};
}
void my_delay_us(u32 us)
{//对于stm32f1系列 72mhz大致是1us
u16 i = 0;
while(us--)
{
i = 2;
while(i--);
}
}
对于STM32F4系列,168Mhz而言
void my_delay_us(u32 us)
{//对于stm32f4系列 168mhz大致是1us
u8 i = 0;
while(us--)
{
i = 42;
while(i--);
};
}
void delay_ms(u32 ms)
{对于stm32f4系列 168mhz大致是1ms
u16 i = 0;
while(ms--)
{
i = 41750;
while(i--);
};
}
有兴趣的朋友可以试一下F2 F0 F3等其它系列