STM32 ---deley延时两行代码实现【为方便移植文件】

2023-11-18

一、前提简述

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

缺点:不够精准;

应用理由:很多文件移植后,发现delay都需要外部文件支持;那,不如在文件内定义一个,方便各文件移植;

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


二、毫秒延时 delay_ms ()

  • 实测误差: 1%以内,没有中断打断的情况;
  • 适合I2C等低速通信延时,及模块上电延时等待;不适合速度要求精准的延时;
static void delayMs(u32 ms)
{
    ms=ms*7979;                  
    for(u32 i=0;i<ms;i++);        // 72MHz系统时钟下,每7979个空循环约耗时1ms
}

三、微秒延时 delay_us ( )

  • 实测误差:10us时误差20%;50us时误差10%;1000us时误差20%;
  • 适合I2C等低速通信延时,及模块上电延时等待;不适合速度要求精准的延时;
static void delayUs(u32 us)
{   
    us = us * 9;
    for(u32 i=0; i<us; i++);        // 72MHz系统时钟下,每9个空循环约耗时1us    
}

四、精准延时

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

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

本文完~~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32 ---deley延时两行代码实现【为方便移植文件】 的相关文章

  • STM32 暂停调试器时冻结外设

    当到达断点或用户暂停代码执行时 调试器可以停止 Cortex 中代码的执行 但是 当皮质停止在暂停状态下执行代码时 调试器是否会冻结其他外设 例如 DMA UART 和定时器 您只能保留时间 r 取决于外围设备 我在进入主函数时调用以下代码
  • STM32的HAL中实现单按、长按和双按功能

    我正在尝试实现单击 双击和长按功能来执行不同的功能 到目前为止 我已经理解了单击和长按的逻辑 但我不知道如何检测双击 至于代码 我使用计数器实现了单击和长按 但代码仅停留在第一个 if 条件上 bool single press false
  • 如何让 jQuery 代码暂停几毫秒?

    我正在使用 jQuery Ajax 函数通过 cron 自动更新我的数据库 由于有很多行需要更新 我想每次更新都将代码暂停几毫秒 最好的方法是什么 这是我的代码示例
  • 使用 Socket.io 将数据从 Chrome for Android 连续传输到 Node.js 服务器

    我需要传输触摸位置 in 安卓版 Chrome 不断地 to a Node js服务器使用Socket io 不过 我猜 传输速度太快了 前几个值接收到服务器 第一次接触大约六个值 后来只有两个或三个值 然后似乎出现交通拥堵 在很长一段时间
  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • Java等待函数

    我想知道你们是否可以帮助我 我正在尝试使用 Java 内置的图形模块制作一个动画程序 事实是 Java 立即执行所有操作 不同的动画之间没有任何时间 最终产品只是最后一张图片 我需要一个在每张图片之间放置半秒的功能 任何帮助表示赞赏 规格
  • Android - 延迟加载图像

    我正在尝试伪造某种进度条 我有 X 张图片并想要一张ImageView以一定的延迟向他们展示 我尝试过做这样的事情 for i 2 i
  • 如何阻止 PHP sleep() 影响我的整个 PHP 代码?

    所以 在我的街机上 howlingdoggames com 我有一个积分系统 每次您访问正在进行游戏的页面时 都会给您一个积分 为了减少滥用 我想进行某种延迟 因此仅在 45 秒后授予 这是我尝试过的 if SESSION lastgame
  • 如何在Unity和C#中延迟一个方法?

    我的名字是 Laurenz 我的问题是如何使用 c 延迟 Unity 中精灵的颜色变化 现在我有一个随机生成器 它根据数字选择颜色 但这种情况每帧都会发生 所以现在真正的挑战是如何延迟它以减少它的变化 public class colorc
  • 想要延迟 1 秒显示数字

    我想在 TextView 中显示数字 如下所示 Wait 5 sec then a delay of 1 sec Wait 4 sec display this in the same text view along with delay
  • 如何在Javascript中延迟setInterval?

    我现在在 JavaScript 中反复遇到一个奇怪的问题 我似乎无法拖延setInterval longer 发生情况的一个小例子 var loop var count loop setInterval start 30 function
  • 嵌入式 C++11 代码 — 我需要 volatile 吗?

    采用 Cortex M3 MCU STM32F1 的嵌入式设备 它具有嵌入式闪存 64K MCU固件可以在运行时重新编程闪存扇区 这是由闪存控制器 FMC 寄存器完成的 所以它不像a b那么简单 FMC 获取缓冲区指针并将数据刻录到某个闪存
  • 如何使用 VBA 从 Outlook 收件箱自动延迟发送电子邮件?

    我是 VBA 方面的新手 我想创建一个规则 脚本 可以按指定的延迟自动转发 Outlook 收件箱中收到的电子邮件 您能给我一些关于如何实现这一目标的指示吗 我试过 Public Declare Sub Sleep Lib kernel32
  • 为什么使用 UIPanGestureRecognizer 移动对象时会出现延迟?

    我要搬家了UIView对象使用UIPanGestureRecognizer 我在屏幕上拖动手指的次数 我向同一方向移动视图的次数 仅在 X 方向上 向左或向右 Y 方向不变 它工作正常 但是 非常明显 delay 这是处理的方法UIPanG
  • Android:定时器/延迟替代方案

    我想让一个图像在 60 毫秒内可见 然后不可见 然后我想让另一个图像执行相同的操作 等等 我认为我没有正确使用计时器 因为当我运行该应用程序时 两个图像会同时打开 并且当我按下使用此功能的按钮时 两个图像不会消失 这是一些示例代码 time
  • 如何在 HTML 中打印每个项目之间有延迟的列表

    Id for each item p p p p p p
  • Objective C - 音频延迟估计的互相关

    我想知道是否有人知道如何执行互相关两个音频信号之间iOS 我想将接收器 我正在从麦克风接收信号 处获得的 FFT 窗口与发射器处 正在播放音轨 处的 FFT 窗口对齐 即确保每个窗口的第一个样本 除了发射机的 同步 周期之外 也将是接收机的
  • STM32 传输结束时,循环 DMA 外设到存储器的行为如何?

    我想问一下 在以下情况下 STM32 中的 DMA SPI rx 会如何表现 我有一个指定的 例如 96 字节数组 名为 A 用于存储从 SPI 接收到的数据 我打开循环 SPI DMA 它对每个字节进行操作 配置为 96 字节 是否有可能
  • 如何在实时 Windows 内核中延迟鼠标移动?

    您可以实时操纵 x 和 y 值 但如何延迟这些值以使光标看起来像缓慢移动到下一个位置 这可能吗 我尝试过在 Windows 内核驱动程序中使用等待计时器 但我不认为这是如何完成的 我不知道 最简单的延迟形式之一是定期采样 轮询 并将它们插入
  • Task.Delay 是否真的像 I/O 操作一样异步,即它依赖于硬件和中断而不是线程?

    我发现了大量相关内容 但这些内容都是拐弯抹角的 但我始终无法找到答案 我几乎 100 确定Task Delay int 不使用线程 因为我可以在只有 16 个逻辑处理器的机器上运行此代码 var tasks new List

随机推荐

  • IB计算机科学选课,IB体系应如何正确选课?

    原标题 IB体系应如何正确选课 选择国际学校最重要的环节就是选课 这决定了你之后的学习方向和计划 甚至影响到成绩的好坏 目前很多国际学校都是IB体系 IB课程除了重视基础知识教学 还有学生的综合素质培养 教学大纲也是与时俱进5年一换 IB体
  • Vue3 + Vite3 + Element-Plus 管理系统

    Vue3 Vite3 Element Plus 管理系统 介绍 vue diverse admin 基于 Vue3 TypeScript Vite3 Element Plus 开源的一套后台管理模板 项目均使用JS开发 但已经配置TS 可以
  • 【VHDL】随机存储器RAM、只读存储器ROM

    VHDL 随机存储器设置 RAM程序 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY RAM 8 IS PORT CS RD WR IN STD LOGIC CLK IN STD LOGIC
  • Android SDK的安装教程

    Android SDK的安装教程 Android4 1虽说已经发布了好些天 但由于的我手机比较坑 系统依旧保持在2 3 4 0的都是可望不可即的了 就别说4 1 由于资金的问题 没法换手机 只能另想方法 通过在笔记本上装android4 1
  • java实现,如何在当前时间往后推三十天

    Calendar cal Calendar getInstance cal add Calendar Date 30 Date date cal getTime
  • topaz全家桶中文_apache 开源项目全家桶 2020年12月中文介绍

    apache项目全家桶 很多apache开源项目特别好 但是没什么能汇总的文档 我来整一个 不定期更新 big data 50 Project Apache Accumulo star 838 github https github com
  • shell脚本基础4——function函数、expect

    文章目录 一 function函数 1 1 函数的定义使用 1 2 函数参数 1 2 1 脚本内传参 1 2 2 脚本外传参 1 3 引用局部变量 1 3 1 区分局部变量 1 3 2 全局变量在函数外 1 3 3 全局变量在函数体 1 3
  • windows检测文件夹是否更新.bat脚本 windows循环检查文件夹

    最近在写windows脚本 记录一下一个很有用的信息 参考 https zhidao baidu com question 2208474390884363868 html 转载于 https www cnblogs com ChenCha
  • Python3 使用 matplotlib 画折线图

    ChartUtil py import matplotlib pyplot as plt from pylab import mpl def plotLine xData yData xLabel chartTitle mpl rcPara
  • matlab:基本操作与矩阵输入

    学习素材 MATLAB教程 台大郭彦甫 14课 原视频补档 MATLAB教程 台大郭彦甫 14课 原视频补档 哔哩哔哩 bilibili 部分素材使用视频截图 目录 一 基本运算 二 关键字 三 format 四 符号 1 2 colon
  • [ACTF 2020 新生赛] Exec

    Exec ping 127 0 0 1 ls ping 127 0 0 1 nl f
  • ABAP实现粘贴板的操作,复制粘贴_SAP刘梦_新浪博客

    ABAP可以实现复制粘贴的操作 自己玩儿 项目里暂时用不到 在ABAP中的 CLASS CL GUI FRONTEND SERVICES中提供了两个方法来控制与剪贴板内容的导入导出 分别是 CLIPBOARD EXPORT和CLIPBOAR
  • Git学习笔记【1】---本地操作

    声明 本教程参考自https www bilibili com video BV1Zz4y1C7vg p 17 一 Git的安装 官网下载即可 https git scm com 二 初始化本地仓库 1 创建一个文件夹 2 打开Git终端
  • Java常用System类

    java lang System类中提供了大量的静态方法 可以获取与系统相关的信息或系统级操作 在System类的API文档中 常用的方法有 public static long currentTimeMillis 返回以毫秒为单位的当前时
  • 移动互联网终端的touch事件,touchstart, touchend, touchmove

    前言 如果我们允许用户在页面上用类似桌面浏览器鼠标手势的方式来控制WEB APP 这个页面上肯定是有很多可点击区域的 如果用户触摸到了那些可点击区域怎么办呢 诸如智能手机和平板电脑一类的移动设备通常会有一个电容式触摸屏 capacitive
  • 微信小游戏关系链能不能获取到服务器,关系链互动数据

    关系链互动数据 在开放 关系链数据能力 的基础上 小游戏新增 互动型托管数据 提供关系链互动能力 用于实现小游戏内微信好友互动 点赞 送礼物等 的功能 关系链互动数据能力支持 好友间互赠 50 种游戏内道具 提供成功互动后的主域回调 满足互
  • maven项目引入外部文件(资源)

    1 maven项目如何引入外部文件 maven项目一般在main目录下分为java和resources 前者是源码 后者是资源 含外部文件 在maven的pom xml中指定resources所在目录后 当maven编译时 resource
  • python3+requests:接口自动化测试(二)

    前言 上篇文章python3 requests unittest 接口自动化测试 一 已经介绍了基于unittest框架的实现接口自动化 但是也存在一些问题 比如最明显的测试数据和业务没有区分开 接口用例不便于管理等 所以又对此修改完善 接
  • OPENCV角点检测和亚像素级检测

    首先进行粗检测 函数goodFeaturesToTrack 存储进入corners中 然后cornerSubPix函数进行亚像素精确匹配 设置结束条件 由于实际应用中线条较粗 因此 CORNER BLOCKSIZE 9 CORNER QUA
  • STM32 ---deley延时两行代码实现【为方便移植文件】

    一 前提简述 优点 无需定时器 仅两行代码 缺点 不够精准 应用理由 很多文件移植后 发现delay都需要外部文件支持 那 不如在文件内定义一个 方便各文件移植 应用要求 STM32F103系列 默认72MHz系统时钟 任何一个工程 复制粘