STM32 延时函数

Posted by LemonWhale on March 20, 2024

HAL库系统定时器(精度高,适合裸体程序)

Systick定时器(滴答定时器) HAL_Delay(100); 毫秒级定时函数 延时时间:1ms - 49.7天

CPU运算延时(精度低,简单易用)

空循环延时

  1. __NOP();延时一个时钟周期 时钟周期:执行一个基本操作所需要的时间 机器周期:执行一个指令所需要的时间
  2. `while(a–);
    /*
     @Func: 微秒延时
     @input:us 延时时间
    */
    void delay_us(uint32_t us){
     uint32_t delay = (HAL_RCC_getHCLKFreq()/80000000*us);
     while(delay--);
    }
    

TIM定时器(精度高,功能多)