STM32 ---【仅两行代码的deley延时函数】

一、前提简述

重点:无需定时器!仅两行代码!

移植:STM32F103系列,默认72MHz系统时钟,任何一个工程,复制粘贴后都能用!


二、毫秒延时 delay_ms ()

  • 实测误差: 1%以内,没有中断打断的情况;
  • 适合I2C等低速通信延时,及模块上电延时等待;不适合速度要求精准的延时;
static void delayMs(u32 ms)
{
    ms=ms*7979;                  
    for(u32 i=0;i

三、微秒延时 delay_us ( )

  • 实测误差:10us时误差20%;50us时误差10%;1000us时误差20%;
  • 适合I2C等低速通信延时,及模块上电延时等待;不适合速度要求精准的延时;
static void delayUs(u32 us)
{   
    us = us * 9;
    for(u32 i=0; i

四、精准延时

如果要求精准的延时,最理想的实现方法是:SysTick中断。比用Tim更适合移植。

精准延时的详细代码,及应用于其上的任务轮询器,已上传分享到STM32技术Q群文件夹中:887199504,自由下载。

本文完~~~

你可能感兴趣的:(STM32,delay,ms延时,us延时,stm32延时,delay延时)