STM32的C语言软件延时函数

news/2025/2/27 5:15:52/

STM32的延时方法很多,其中采用定时器延时,可以得到较为精确的延时,但是有时对延时精度要求不高的场合,采用软件延时,也是必须的。特别是在RTOS系统中,使用SysTick的普通计数模式对延迟进行管理,如果需要执行毫秒级延时,会引起系统调度。此时要想不会引起任务调度,就会用到C语言软件延时函数。

实现方法如下:
假设CPU主频为72MHz,时钟周期为1/72MHz=13.88纳秒。当延时10微秒,需要执行的空指令个数为10微秒/13.8纳秒=724个;当延时1毫妙,需要执行72027个周期,相当于延时0.993972.6毫妙。
 

//函数功能:当time=10,需要执行738个周期,相当于延时10.25微妙
void delay_us(u16 time)
{    
   u16 i=0;  
   while(time--)
   {
      i=10;  //自己定义
      while(i--) ;    
   }
}

//函数功能:当time=1,需要执行72027个周期,相当于延时0.993972.6毫妙
void delay_ms(u16 time)
{    
   u16 i=0;  
   while(time--)
   {
      i=12000;  //自己定义
      while(i--) ;    
   }
}

 

 C语言软件延时函数,不会引起软件延时调度,在进入系统之前可能需要这种延时,因此,还是需要的。这使用方法,在51单片机中会经常被用到。


http://www.ppmy.cn/news/1575181.html

相关文章

【江科协-STM32】5. 输出比较

1. 输出比较简介 OC(Output Compare)输出比较。 输出比较可以通过CNT(CNT计数器)与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。 :::tip CNT计数器是正向计数器。它只能正向累…

React加TypeScript最新部署完整版

React TypeScript 全流程部署指南 一、环境准备与项目初始化 关于node.js及npm的安装请参见我的文章。 1.1 创建项目(React TypeScript) # 使用官方推荐脚手架(Vite 5.x) npx create-vitelatest my-app --template react-ts …

国产编辑器EverEdit - 在编辑器中对文本进行排序

1 排序 1.1 应用场景 某些场景下用户需要对文本进行排序,比如:用户正在编辑函数列表,对函数列表按名称按字母A-Z排序。 1.2 使用方法 1.2.1 对选中文本进行排序 在编辑器中选中要排序的文本。选择主菜单工具 -> 排序 -> 升序排序 如…

(面试经典问题之连接池篇)连接池构成、作用及其基本原理详解

一、什么是连接池 连接池一般指的是数据库连接池(connection pooling),是指程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态的对池中的连接进行申请,使用,释放&#xf…

STM32MP157A单片机移植Linux驱动深入版

需求整理 在Linux设备树中新增leds节点&#xff0c;其有3个gpio属性&#xff0c;分别表示PE10对应led1&#xff0c;PF10对应led2&#xff0c;PE8对应led3&#xff0c;设备树键值对如下&#xff1a; leds { led1-gpio <&gpioe 10 0>; led2-gpio &l…

lua-游戏红点提示系统抽象设计

文章目录 前言一、定义红点节点类型二、节点注册与管理三、状态更新与冒泡机制 四、示例配置与使用五、结构示意图六、关键机制说明总结 前言 在游戏开发中&#xff0c;红点提示系统可以通过树形结构和策略模式进行抽象&#xff0c;实现高扩展性。以下是基于Lua的实现方案&…

R 语言科研绘图第 27 期 --- 密度图-分组

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…

【论文精读】VLM-AD:通过视觉-语言模型监督实现端到端自动驾驶

论文地址&#xff1a; VLM-AD: End-to-End Autonomous Driving through Vision-Language Model Supervision 摘要 人类驾驶员依赖常识推理来应对复杂多变的真实世界驾驶场景。现有的端到端&#xff08;E2E&#xff09;自动驾驶&#xff08;AD&#xff09;模型通常被优化以模仿…