说明:
本文原创作者『Allen5G』
首发于微信公众号『Allen5G』
标签:编程,软件,算法,思维
1 自带的hal_delay 函数 毫秒级延迟
void HAL_Delay(__IO uint32_t Delay)
{
uint32_t tickstart = HAL_GetTick(); //获取tick值(毫秒)
uint32_t wait = Delay;
/* Add a period to guarantee minimum wait */
if (wait < HAL_MAX_DELAY)
{
wait++;//传参,延时的时间
}
while((HAL_GetTick() - tickstart) < wait)
{
}
}
也可以配置为us延时,改变函数参数
配置方法:也可以配置为1us
// HAL_RCC_GetHCLKFreq()/1000 1ms中断一次,即HAL_Delay函数延时基准为1ms
// HAL_RCC_GetHCLKFreq()/100000 10us中断一次,即HAL_Delay函数延时基准为10us
// HAL_RCC_GetHCLKFreq()/1000000 1us中断一次,即HAL_D