c语言延时函数delay_STM32延时函数的四种方法

本文介绍了STM32中c语言延时函数的四种方法,包括使用定时器中断、查询定时器、汇编指令延时以及for循环延时。通过实例详细解析了SysTick定时器的工作原理和配置,强调了不同延时方法的精度和适用场景,尤其在中断环境中调用延时函数的影响。
摘要由CSDN通过智能技术生成

关注、星标公众,不错过精彩内容02be5b7c8b699c7766044e94cd18eb5f.png

单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us()和毫秒级delay_ms()。 本文基于STM32F207介绍4种不同方式实现的延时函数。 d16958190950ed865867862eb44b79ee.gif 普通延时 这种延时方式应该是大家在51单片机时候,接触最早的延时函数。这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,在某些编译器下,代码会被优化,导致精度较低,用于一般的延时,对精度不敏感的应用场景中。
//微秒级的延时void delay_us(uint32_t delay_us){      volatile unsigned int num;  volatile unsigned int t;    for (num = 0; num < delay_us; num++)  {
        t = 11;    while (t != 0)    {
          t--;    }  }}//毫秒级的延时void delay_ms(uint16_t delay_ms){      volatile unsigned int num;  for (num = 0; num < delay_ms; num++)  {
        delay_us(1000);  }}
上述工程源码仓库: https://github.com/strongercjd/STM32F207VCT6/tree/master/02-Template (提示:公众号 不支 持外链接,请复制链接到浏览器下载) d16958190950ed865867862eb44b79ee.gif 定时器中断

定时器具有很高的精度,我们可以配置定时器中断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值