别再瞎调SysTick了!对比正点原子、野火、小马飞控的四种延时写法,哪种最适合你的STM32项目?

别再瞎调了!STM32 Systick延时函数避坑指南(正点原子、野火、慧净代码对比) 本文深入解析STM32 Systick延时函数的实现差异与优化策略,对比正点原子、野火、慧净等主流方案的优缺点。针对us和ms级延时精度问题,提供避坑指南和高级优化技巧,帮助开发者根据项目需求选择最佳方案,提升嵌入式系统的定时控制精度。 阅读详情

STM32 SysTick延时方案深度对比:从代码风格到实战选型指南

在嵌入式开发中,精确的时间控制往往是项目成败的关键因素之一。SysTick作为Cortex-M内核提供的标准定时器,因其简单易用、无需额外硬件支持的特性,成为STM32开发者实现延时的首选方案。然而,不同厂商和开源社区提供的SysTick实现方式却存在显著差异,这些差异直接影响着代码的可维护性、延时精度以及系统整体性能。

1. 四种主流SysTick实现方案解析

1.1 正点原子方案:简洁但存在精度缺陷

正点原子的实现以其代码简洁著称,特别适合快速原型开发。其核心思路是将SysTick配置为HCLK/8时钟源(通常为9MHz),通过直接操作LOAD寄存器实现延时:

void delay_us(u32 nus) {
    u32 temp;
    SysTick->LOAD=nus*fac_us-1; 
    SysTick->VAL=0x00;
    SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
    do {
        temp=SysTick->CTRL;
    }while((temp&0x01)&&!(temp&(1<<16)));
    SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
    SysTick->VAL =0X00;
}

关键特性分析:

特性 参数/表现
时钟源 HCLK/8 (通常9MHz)
最大延时限制 1864135μs (约1.864秒)
精度误差 未减1导致多计1个时钟周期
中断使用 不占用中断资源
代码体积 较小

注意:正点原子方案在LOAD寄存器赋值时未减1的操作会导致实际延时多出约111ns(在9MHz时钟下),这在需要高精度时序控制的应用中可能产生累积误差。

1.2 野火方案:灵活的无限制延时

野火的实现采用了不同的设计哲学,直接使用72MHz系统时钟,通过动态配置SysTick实现理论上无限制的延时:

void SysTick_Delay_us(uint32_t us) {
    uint32_t i;
    SysTick_Config(72);
    for(i=0; i<us; i++) {
        while( !((SysTick->CTRL) & (1<<16)) );
    }
    SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;
}

技术特点对比:

  • 时钟配置:
    • 直接调用CMSIS的SysTick_Config
    • 默认使用72MHz系统时钟
  • 延时机制:
    • 每次微秒延时都重新配置SysTick
    • 通过循环实现长时间延时
  • 优势:
    • 无最大延时限制
    • 理论精度更高(13.89ns/步进)
  • 劣势:
别再瞎调了!STM32 Systick延时函数里的那个‘-1’到底该不该减?(附正点原子、野火、小马飞控代码对比) 本文深入解析STM32 Systick延时函数中LOAD寄存器减1的技术细节,对比正点原子、野火和小马飞控的实现方式,提供精度影响分析和优化建议。通过实测数据验证减1操作对延时精度的影响,帮助开发者实现更精确的定时控制。 阅读详情

相关推荐

WeChatTweak v2.7.0 V增强插件 dylib

资源来自网络,仅用于学习交流,请在下载24小时内删除

机械三维3D设计图-高炉开铁口钻钎机构系统设计.zip

机械三维3D设计图-高炉开铁口钻钎机构系统设计.zip

机械三维3D设计图-自动下落吹钉振动盘.zip

机械三维3D设计图-自动下落吹钉振动盘.zip

机械三维3D设计图-齿条与小齿轮组件的装配与检测.zip

机械三维3D设计图-齿条与小齿轮组件的装配与检测.zip

Delphi 13.2控件之OmniThreadLibrary-release-3.09.zip

Delphi 13.2控件之OmniThreadLibrary-release-3.09.zip

机械三维3D设计图-开线机.zip

机械三维3D设计图-开线机.zip

机械三维3D设计图-双胶纸贴合设备.zip

机械三维3D设计图-双胶纸贴合设备.zip

联合国可持续发展目标SDG指标观测数据集8391条全球面板

全球发展与公共政策研究数据集:源自联合国统计司SDG官方API的真实观测数据,精选覆盖贫困、孕产妇健康、婴儿死亡率、教育、性别平等、饮用水、电力可及、就业、不平等与灾害韧性等可持续发展指标。共8391条观测、131个地理区域、观测年份自1970年至2026年,长表面板结构,附官方SDG指标与序列编码,含国家、区域与全球三级地理记录。适合可持续发展研究、国际比较分析、面板数据建模、公共政策评估与发展指标可视化。MIT许可,即拿即用。

机械三维3D设计图-转子换向器精车机.zip

机械三维3D设计图-转子换向器精车机.zip

idea2025-free.zip

idea2025-free.zip

基于一致性理论的三机并联独立微网二次控制模型研究(Simulink仿真实现)

内容概要:本文针对三机并联独立微网系统,研究了基于一致性理论的二次控制模型,旨在解决传统一次控制中存在的电压与频率偏差问题,实现微网中多个分布式电源间的协同自治运行。通过引入一致性算法,设计了分布式二次控制策略,能够在无需中央控制器的情况下,实现各分布式单元间的信息交互与状态同步,有效恢复系统电压和频率至额定值,提升微网孤岛运行模式下的电能质量和动态稳定性。研究基于Matlab/Simulink平台构建了完整的三机并联微网仿真模型,详细阐述了控制器架构设计、一致性协议构建及关键参数整定方法,并通过仿真实验验证了所提控制策略在负载突变、机组投切等工况下的有效性、鲁棒性与优越的动态响应性能。该成果为独立微网的分布式协同控制提供了切实可行的技术方案和理论依据。; 适合人群:具备电力系统、电气工程及其自动化、新能源科学与工程等相关专业背景的科研人员与工程技术人员,熟悉MATLAB/Simulink仿真工具,尤其适合从事微电网控制、分布式能源协调优化、智能电网等方向的研究学者与研究生。; 使用场景及目标:① 学习并掌握基于一致性理论的分布式协同控制原理及其在微网二次控制中的具体应用;② 深入理解多智能体系统在电力系统中的建模与仿真方法;③ 为独立微网、海岛微网、偏远地区供电系统等无主站场景下的稳定运行提供控制策略设计参考与仿真验证案例。; 阅读建议:建议读者结合微网基础知识与控制理论进行学习,重点关注一致性协议的数学建模与Simulink模块化实现过程,通过修改仿真参数、测试不同通信拓扑等方式深入理解控制效果的影响因素,并可进一步将该思想拓展至更复杂的多能微网系统研究中。

国央企创新负责人如何高效配置内部创新资源与外部转化平台?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员如何提升技术成果的推介效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

基于模型预测控制MPC的光伏供电的DC-AC变换器设计研究(Simulink仿真实现)

内容概要:本文围绕基于模型预测控制(MPC)的光伏供电DC-AC变换器设计展开研究,并通过Simulink平台实现系统建模与仿真实验。研究聚焦于新能源发电系统中电能变换的核心环节,重点探讨MPC在提升DC-AC变换器动态响应速度、控制精度以及处理多变量耦合、系统约束优化等方面的优越性。文中详细阐述了系统的数学建模过程、MPC控制器的设计原理及其在并网条件下的运行特性,通过仿真验证了该控制策略在改善光伏发电系统电能质量、增强并网稳定性方面的有效性,为高性能逆变器控制提供了理论依据与实践参考。; 适合人群:具备电力电子、自动控制理论及新能源系统相关专业知识背景的科研人员和工程技术人员,特别适合从事光伏并网、智能电网、电力变换器控制等方向的研究生及具有一定项目开发经验的研发工程师; 使用场景及目标:①应用于光伏并网逆变器控制系统设计,提升系统动态性能与鲁棒性;②作为MPC在电力电子领域应用的教学与科研案例,深入理解预测控制算法在实际工程中的实现方法与优化路径; 阅读建议:建议读者结合Simulink仿真模型同步操作,重点关注系统建模、代价函数构建、约束处理及参数整定等关键步骤,深入理解MPC控制策略的设计逻辑与工程实现细节,以达到理论与实践深度融合的学习效果。

国央企创新负责人在推动内部技术成果转化时,如何有效对接外部科研资源?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

数字化教学与AI学伴生态逻辑图-可编辑版

数字化教学与AI学伴生态逻辑图-可编辑版

双有源桥DAB变换器三重移相TPS仿真模型研究(Simulink仿真实现)

双有源桥DAB变换器三重移相TPS仿真模型研究(Simulink仿真实现)内容概要:本文主要介绍了“双有源桥DAB变换器三重移相TPS仿真模型研究”的Simulink仿真实现,重点围绕电力电子变换器中的DAB(Dual Active Bridge)拓扑结构,研究其在三重移相(TPS)控制策略下的工作特性与仿真建模方法。文档详细阐述了如何利用Simulink搭建DAB变换器系统,实现高效的能量双向传输,并通过三重移相控制优化电流应力、提高效率、减少回流功率。文中还提及该模型在交直流混合微电网、能量路由器、柔性互联等应用场景中的实际价值,并提供了完整的仿真资源与参考资料链接,便于读者复现与拓展研究。; 适合人群:具备电力电子、自动控制或电气工程背景,熟悉Simulink仿真环境,从事新能源、微电网、电力变换器等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握DAB变换器的工作原理及三重移相控制策略的设计与实现;② 学习在Simulink中构建复杂电力电子系统的仿真模型;③ 用于科研项目复现、课程设计、毕业论文或实际工程项目的技术验证与优化分析;④ 结合提供的参考文献与代码资源,深入理解先进控制策略在电力系统中的应用。; 阅读建议:建议结合文档中提供的网盘资源、参考文献及仿真模型文件同步操作,边学习边实践,重点关注三重移相控制的时序逻辑与参数调节方法,尝试修改模型参数以观察系统动态响应变化,从而加深对DAB变换器性能优化的理解。

无人机射频信号时频图的形态学滤波

无人机射频信号时频图的形态学滤波

STC8H单片机ADC实战:从读取电位器到串口绘图,12位精度玩起来

本文详细介绍了STC8H单片机的ADC功能实战应用,从读取电位器到串口绘图,展示了12位精度的实现方法。通过硬件连接、代码配置、串口数据传输及高级优化技巧,帮助开发者快速掌握ADC模块的使用,适用于各种传感器数据采集和信号处理场景。

weixin_28278377的博客 335

具身智能四大技术路线:VLA、大小脑、世界模型与强化学习

具身智能是机器人实现感知-决策-执行闭环的核心范式,其本质在于物理世界中的具身化交互能力。技术演进围绕如何高效建模环境、理解指令并生成鲁棒动作展开,衍生出四大主流路径:视觉-语言-动作(VLA)端到端学习、大小脑分层控制、世界模型驱动预测,以及强化学习原生策略优化。VLA强调多模态对齐与泛化能力,适合语义理解优先场景;大小脑架构兼顾实时性与可解释性,是工业落地的高可靠选择;世界模型追求内在物理模拟,代表长期认知跃迁方向;强化学习则扎根仿真试错,在力控、抓取等连续控制任务中展现强鲁棒性。本文聚焦这四大路线的技

weixin_32181267的博客 286

用limma包进行多组差异表达分析

写在前面:最近在使用limma包进行差异表达分析,参考了网上许多教程都觉得说的云里雾里,很不清楚。经过我自己一段时间非常痛苦的钻研,弄明白了,解决了我的实际需求。于是决定将我的分析经验写下来,分享给需要的人。 首先加载前期预处理好的表达矩阵。(我的原始表达矩阵文件已附在文后,大家有需要可以下载实践) setwd("E://Rworkplace") data<-read.table...

weixin_40640700的博客 4万+

STM32控制气泵和电磁阀实现

2、mos管的选型:mos管选择主要注意两个参数即可,一是导通的电流,二是耐压值,并且常用NMOS管,根据要求,气泵和电磁阀供电电压为12V,所以选择的mos管耐压值要大于12V,这里选用耐压值为30V的MOS管,并且导通电流为5.8A,如下图。1、气泵和电磁阀的开和关均为开关量,实现控制方法有多种,比如继电器,但是继电器动作有噪声且体积较大,更好的方法为使用mos管。使用STM32控制气泵和电磁阀的开和关,气泵和电磁阀的供电电压为12V。最终实现单片机控制气泵和电磁阀的开和关。

jacklood的博客 1万+

《数据结构》知识点汇总+算法代码总结【全】

写在前面:本文写于吴签时期,在家备考时刷完数据结构王道书之后想着把书中重点梳理汇总一下。本文内容包括但不局限于王道数据结构每章的知识点及其课后习题所涵盖的知识点。本人曾在大三期间打过一些程序设计类比赛,所以本文所涉及到的代码不一定局限于王道书,但思想都一样。 期末复习和备考408均可使用第一章:绪论(不在考研大纲但很重要)第二章:线性表第三章:栈和队列第四章:串第五章:树与二叉树第六章:图第七章:查找 第一章:绪论(不在考研大纲但很重要) 数据结构三要素:逻辑结构、存储结构、数据的运算;其中逻辑结构包括线

qq_44622401的博客 17万+

DeepSeek掘金——用DeepSeek模型构建AI 代理

在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。人工智能领域正在迅速发展,DeepSeek 的模型代表了智能 AI 代理开发的重大进步。在本综合指南中,我们将探讨如何利用 DeepSeek 的功能构建能够以有意义的方式理解、推理和交互的复杂 AI 代理。

3852

2025华为杯第二十二届中国研究生数学建模竞赛C题:围岩裂隙精准识别与三维模型重构 - 完整解题分析+完整MATLAB源码!(下篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 1602

YOLOv11改进策略【卷积层】| ICCV-2023 引入Dynamic Snake Convolution动态蛇形卷积,改进C3k2

基于拓扑几何约束的动态蛇卷积用于管状结构分割DSConv(Dynamic Snake Convolution,动态蛇形卷积)模块的设计主要是为了更好地处理管状结构的分割任务,解决传统卷积在处理细管状结构时的不足。

Limiiiing的博客 1613

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 用STM32CubeMX和ADXL345做个简易计步器:从I2C配置到角度计算全流程
下一篇: ESP8285音乐灯滤波算法实测:均值滤波vs中值滤波,哪种效果更好?
甜嗑儿
博客等级 码龄7年 44粉丝 1770原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值