当前位置: 首页 > news >正文

STM32的C语言软件延时函数

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.lryc.cn/news/543287.html

相关文章:

  • 【洛谷排序算法】P1012拼数-详细讲解
  • 在WINDOWS系统使用CMake gui编译NLopt配合VSCode使用
  • angular生命周期
  • [AI概念域] AI 大模型是如何被训练出来的?(通俗解读)
  • Mellanox的LAG全称是什么?网卡的创建机制如何?(Link Aggregation Group 链路聚合组)
  • 【最大通过数——二分】
  • Liunx系统中FTP与NFS
  • uniapp 测试 IPA 包安装到测试 iPhone
  • 结构体指针传递给函数注意事项
  • mfy学习笔记
  • C语言--文件操作
  • 网络安全内参
  • C++大整数类的设计与实现
  • 在 macOS 系统上安装 kubectl
  • 【人工智能】蓝耘智算平台盛大发布DeepSeek满血版:开创AI推理体验新纪元
  • 构建数据治理闭环:DAMA视角下的全流程实践与价值变现
  • 《深度剖析:AI与姿态估计技术在元宇宙VR交互中的应用困境》
  • 【Python LeetCode】面试经典 150 题
  • 2011-2019年各省乡镇综合文化站机构数数据
  • LeetCode 热题100 226. 翻转二叉树
  • mysql 拼接多行合并为一行
  • 【Java项目】基于Spring Boot的论坛管理系统
  • unity学习54:图片+精灵+遮罩mask,旧版文本 text 和新的TMP文本
  • 2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序
  • 什么是数字人
  • 15.5 基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑
  • 软件供应链安全工具链研究系列—RASP自适应威胁免疫平台(下篇)
  • WordPress网站502错误全面排查与解决指南
  • PCL源码分析:曲面法向量采样
  • HTTP 动态报错码的原因和解决方法