前言
本文带大家配置定时器写一个us级延时函数。
一、cubeMX配置
定时器配置
二、代码解析
//微秒延时 void Delay_us(uint16_t us) { uint16_t differ = 0xffff-us-5; __HAL_TIM_SET_COUNTER(&htim1,differ); //设定TIM1计数器起始值 HAL_TIM_Base_Start(&htim1); //启动定时器 while(differ < 0xffff-5)//判断 { differ = __HAL_TIM_GET_COUNTER(&htim1); //查询计数器的计数值 } HAL_TIM_Base_Stop(&htim1);//关闭定时器 }
总结
使用上述代码即可实现us级延时。