3、代码实现
/*
普通定时器实现us延时
*/
void user_delaynus_tim(uint32_t nus)
{
uint16_t differ = 0xffff-nus-5;
//设置定时器2的技术初始值
__HAL_TIM_SetCounter(&htim2,differ);
//开启定时器
HAL_TIM_Base_Start(&htim2);
while( differ<0xffff-5)
{
differ = __HAL_TIM_GetCounter(&htim2);
};
//关闭定时器
HAL_TIM_Base_Stop(&htim2);
}
/*
普通定时器实现ms延时,可直接使用HAL库函数HAL_delay()
*/
void delay_ms_tim(uint16_t nms)
{
uint32_t i;
for(i=0;i<nms;i++) user_delaynus_tim(1000);
|