stm32延时us寄存器_STM32延时函数的四种方法

本文详细介绍了在STM32F207上实现微秒和毫秒级延时的四种方法:包括普通延时、定时器中断、查询定时器和汇编指令。每种方法都有其适用场景和精度特点,对于不同的应用需求可以选择合适的方法。
摘要由CSDN通过智能技术生成

单片机编程过程当中常常用到延时函数,最经常使用的莫过于微秒级延时delay_us()和毫秒级delay_ms()。本文基于STM32F207介绍4种不一样方式实现的延时函数。git

一、普通延时

这种延时方式应该是你们在51单片机时候,接触最先的延时函数。这个比较简单,让单片机作一些可有可无的工做来打发时间,常常用循环来实现,在某些编译器下,代码会被优化,致使精度较低,用于通常的延时,对精度不敏感的应用场景中。github

1 //微秒级的延时

2 voiddelay_us(uint32_t delay_us)3 {4 volatile unsigned intnum;5 volatile unsigned intt;6

7

8 for (num = 0; num < delay_us; num++)9 {10 t = 11;11 while (t != 0)12 {13 t--;14 }15 }16 }17 //毫秒级的延时

18 voiddelay_ms(uint16_t delay_ms)19 {20 volatile unsigned intnum;21 for (num = 0; num < delay_ms; num++)22 {23 delay_us(1000);24 }25 }

二、定时器中断

定时器具备很高的精度,咱们能够配置定时器中断,好比配置1ms中断一次,而后间接判断进入中断的次数达到精确延时的目的。这种方式精度能够获得保证,可是系统一直在中断,不利于在其余中断中调用此延时函数,有些高精度的应用场景不适合,好比其余外设正在输出,不容许任何中断打断的状况。app

STM32任何定时器均可以实

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值