stm32定时器实现 微秒延时

Cubemx配置图stm32定时器实现 微秒延时_第1张图片

 初始化无需使能定时器中断。

代码如下:

void delay_us(uint16_t us){
    uint16_t differ = 0xffff-us-5;              
    __HAL_TIM_SET_COUNTER(&htim17,differ);   //清空定时器17
    HAL_TIM_Base_Start(&htim17);     // 启动定时器

    while(differ < 0xffff-5){   //计算
        differ = __HAL_TIM_GET_COUNTER(&htim17);     //获取值
    }
    HAL_TIM_Base_Stop(&htim17);
}

你可能感兴趣的:(stm32,stm32,单片机,嵌入式硬件)