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

STM32的hal库在实现延时函数(例如:Delay_ms 等)为什么用滴答定时(Systick)而不是定时器定时中断,也不是RTC?

STM32的HAL库在实现延时函数(如Delay_ms等)时选择使用滴答定时器(Systick)而非定时器定时中断或RTC(实时时钟),主要基于以下几个原因:

Systick定时器的优势

  1. 集成在NVIC中:Systick定时器是Cortex-M内核的一部分,它集成在NVIC(嵌套向量中断控制器)中。这使得Systick定时器具有更高的访问权限和更直接的中断处理能力,从而能够更高效地实现延时功能。
  2. 简化的配置和使用:相较于其他定时器,Systick定时器的配置和使用相对简单。它通常只需要设置重装载值、时钟源和使能中断即可开始工作。这使得Systick定时器在实现基本延时功能时更加便捷。
  3. 低功耗和高效性:由于Systick定时器是内核自带的定时器,它在实现延时功能时能够更有效地利用系统资源,同时降低功耗。这对于需要低功耗运行的嵌入式系统来说尤为重要。

与其他定时方式的比较

  1. 定时器定时中断

    • 虽然定时器定时中断可以提供更高的精度和更多的功能(如输入捕获、PWM输出等),但其配置和使用相对复杂。
    • 在实现简单延时功能时,使用定时器定时中断可能会增加系统的复杂性和功耗。
  2. RTC

    • RTC主要用于提供实时时钟功能,其精度和稳定性通常较高,但功耗也相对较高。
    • 使用RTC来实现延时功能可能会增加不必要的功耗和复杂性,特别是在需要频繁调用延时函数的场景中。

HAL库中的实现

在HAL库中,延时函数(如HAL_Delay)通常是通过配置Systick定时器来实现的。HAL库提供了相关的API函数来初始化Systick定时器、设置重装载值以及实现延时功能。这些API函数简化了Systick定时器的配置和使用过程,使得开发者能够更加方便地实现延时功能。

  STM32的HAL库在实现延时函数时选择使用Systick定时器是出于其集成在NVIC中、配置简单、低功耗和高效性等方面的考虑。这些优势使得Systick定时器成为实现基本延时功能的理想选择。

相关文章:

STM32的hal库在实现延时函数(例如:Delay_ms 等)为什么用滴答定时(Systick)而不是定时器定时中断,也不是RTC?

STM32的HAL库在实现延时函数(如Delay_ms等)时选择使用滴答定时器(Systick)而非定时器定时中断或RTC(实时时钟),主要基于以下几个原因: Systick定时器的优势 集成在NVIC中&#xff…...

刚刚买的域名被DNS劫持了怎么处理

在当今数字化的时代,域名作为网络世界的重要标识,对于个人和企业的在线业务都至关重要。然而,有时会遭遇令人头疼的问题,比如新买的域名被DNS劫持。这不仅会影响网站的正常访问,还可能导致用户信息泄露、业务受损等严重…...

递归 算法专题

递归题目技巧 什么是递归 函数自己调用自己的情况为什么会用到递归 本质: 主问题, 可以拆分成相同的子问题 子问题, 又可以拆分出相同的子问题如何理解递归? 宏观的看待递归的过程 1)不要在意递归的细节展开图 2)把递归的函数当成一个黑盒 3)相信这个黑盒一定能够完成这个任务…...

Logstash 迁移索引元数据(设置和映射)

https://help.aliyun.com/zh/es/use-cases/use-logstash-to-migrate-full-or-incremental-data-from-self-managed-elasticsearch-to-alibaba-cloud-elasticsearch 在进行数据迁移时,Logstash会帮助您自动创建索引,但是自动创建的索引可能与您待迁移的索…...

用python将pdf转成图片转换成对应的word文件

*科管系统**报告只能上传word,但是有些盖章文件只有pdf版本,因此有这个需求,目前市面上没这软件,只能自己python写一个。 要将PDF中的页面以图片的形式存储到Word文档中,你需要完成以下几个步骤: 从PDF中…...

list(c++)

list介绍 list是STL容器中的容器,且元素在容器中的位置是分散的并与大小无关。list的底层是双向链表,其优势是在任意位置插入和删除元素的时间复杂度为O(1),但无法通过“下标[ ]”直接访问元素,需要通过从头(尾&#…...

51单片机STC8G串口Uart配置

测试环境 单片机型号:STC8G1K08-38I-TSSOP20,其他型号请自行测试; IDE:KEIL C51; 寄存器配置及主要代码 STC8G系列单片机具有4个全双工异步串行通信接口;本文以串口1为例,串口1有4种工作方式…...

uni-app使用movable-area 实现数据的拖拽排序功能

文档地址 template部分 <movable-area :style"getAreaStyle"><movable-view class"table-row" v-for"v,i in move.list":key"v.id":y"v.y"change"handle_moving"direction"vertical"touchst…...

如何设置使PPT的画的图片导出变清晰

PPT画的流程图另存为图片 插入WORD不清晰的解决办法&#xff1a; 第一步&#xff1a;先调整PPT分辨率 根据此链接修改PPT默认的导出dpi 第二步&#xff1a;新建PPT准备 首先看想要保存的图的尺寸&#xff1a;点击图形-格式-长宽 新建一个ppt-设计-幻灯片大小-自定义大小 …...

和鲸科技 CEO 范向伟受邀揭牌启动南京大学 2024 级大学生人工智能素养大赛

2024 年 10 月 26 日&#xff0c;南京大学第十九届读书节在仙林校区图书馆举行开幕仪式。中国科学院院士、南京大学校长谈哲敏&#xff0c;校党委常委、副校长索文斌&#xff0c;原副校长、关工委主任闵铁军出席仪式&#xff0c;南京大学相关学院和职能部处负责人&#xff0c;以…...

NewStarCTF2024-Week4-Web-WP

目录 1、blindsql2 2、chocolate 3、隐藏的密码 4、ezcmsss 题目对勇师傅来说已经是开始上难度了所以这周没有AK 分享下自己做出来的题的解题思路 1、blindsql2 原本是在继续构造新的 payload&#xff0c;也测到了延时 打算去改上周的脚本&#xff0c;结果去跑的时候忘了将…...

Java学习Day56:暴打舔狗!(SpringBoot)

1.springboot简介 核心能力&#xff1a;Spring容器、日志、自动配置AutoCongfiguration、Starters web应用的能力&#xff1a;MVC、嵌入式Web服务器 数据访问(持久化)&#xff1a;关系型数据库、非关系型数据库 强大的整合其他技术的能力 只要是Java中牛逼的技术&#xff0c…...

RSA加密算法实现

Java实现RSA加密算法示例,包括密钥对的生成、加密和解密过程。首先需要导入Java的加密库,这些功能主要通过java.security和javax.crypto包提供。先生成了一个RSA密钥对,包括一个公钥和一个私钥。然后使用公钥加密了一个字符串,并使用私钥解密了加密后的字符串。加密和解密的…...

大数据新视界 -- 大数据大厂之优化大数据计算框架 Tez 的实践指南

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

java 中 List<T> 类型数据在 postgreSql 数据库中存储

一 属性添加注解 在类上面添加注解&#xff1a; TableName(autoResultMap true) 在字段上面添加注解&#xff1a; TableField(value "list", typeHandler UserHandler.class) private List<User> list new ArrayList<>(); 二 创建 UserHandler 类…...

公共命名空间,2024年10月的笔记

首先&#xff0c;我国选择C做为竞赛语言&#xff0c;许多人学C&#xff0c;学习的结果是&#xff1a;看到“公共命名空间”&#xff0c;就幻想出一个私有命名空间&#xff0c;其实&#xff0c;公共命名空间和C的命名空间无关&#xff01; 超简源代码 已知序列v{1,2,3,4,5}&…...

frida脚本,自动化寻址JNI方法

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 1. 通过 ArtMethod 结构体找到 jni 方法在内存中的地址&#xff0c;并把寻址方法通过 rpc.exports 暴露给 Python 脚本调用 jni_addr.js let entry_point_fr…...

‌MySQL中‌between and的基本用法‌

文章目录 一、between and语法二、使用示例2.1、between and数值查询2.2、between and时间范围查询2.3、not between and示例 BETWEEN AND操作符可以用于数值、日期等类型的字段&#xff0c;包括边界值。 一、between and语法 MySQL中的BETWEEN AND操作符用于在两个值之间选择…...

Ceph 存储系统全解

1. 引言 什么是 Ceph&#xff1f; Ceph 是一个开源的分布式存储系统&#xff0c;旨在提供高性能、可扩展、无单点故障的统一存储平台。它可以同时支持对象存储、块存储和文件系统存储&#xff0c;能够满足不同存储需求的多种应用场景。Ceph 通过其强大的 RADOS&#xff08;可…...

C# ftp帮助类 项目实战优化版

上位机开发中有时要与客户的文件服务器进行数据交互。如Mapping文件下载。结果文件上传等。我在项目中就常用到。现在把项目实战代码进行分享一下。 功能列表&#xff1a;连接服务器&#xff0c;下载文件&#xff0c;上传文件&#xff0c;删除服务器文件&#xff0c;获取当前目…...

WikiJS全文搜索实战:用ElasticSearch+IK分词器提升内容检索效率(Docker版)

WikiJS全文搜索实战&#xff1a;ElasticSearch与IK分词器的深度优化指南 引言&#xff1a;为什么需要专业级全文搜索解决方案&#xff1f; 想象一下&#xff0c;当你面对一个包含数千篇技术文档的Wiki系统时&#xff0c;传统的关键词匹配就像在黑暗房间里寻找一根针。WikiJS自带…...

为什么你的Pyd文件在Windows上总报“DLL加载失败”?系统级依赖扫描、Manifest嵌入与UCRT版本对齐终极方案

第一章&#xff1a;Pyd文件在Windows上的本质与加载机制Pyd 文件是 Windows 平台上 Python 的 C 扩展模块的二进制格式&#xff0c;其本质是遵循特定 ABI 约束的动态链接库&#xff08;DLL&#xff09;&#xff0c;但被 Python 解释器以特殊方式识别和加载。它并非普通 DLL&…...

美胸-年美-造相Z-Turbo在网络安全领域的创新应用:恶意代码可视化分析

美胸-年美-造相Z-Turbo在网络安全领域的创新应用&#xff1a;恶意代码可视化分析 1. 当安全分析遇上图像生成&#xff1a;一个意想不到的跨界组合 最近在调试一个自动化威胁分析流程时&#xff0c;我偶然发现了一个有趣的现象&#xff1a;当把一段混淆后的JavaScript恶意代码…...

AIVideo效果展示:输入主题输出专业视频,惊艳案例分享

AIVideo效果展示&#xff1a;输入主题输出专业视频&#xff0c;惊艳案例分享 1. 专业级视频生成效果概览 AIVideo一站式AI长视频工具能够将简单的文字主题转化为完整的专业视频作品。只需输入一个主题&#xff0c;系统就会自动完成从文案创作、分镜设计、画面生成到配音剪辑的…...

南北阁4.1-3B WebUI代码实例:TextIteratorStreamer多线程流式实现解析

南北阁4.1-3B WebUI代码实例&#xff1a;TextIteratorStreamer多线程流式实现解析 今天咱们来聊聊一个特别有意思的项目——一个为南北阁4.1-3B模型量身定做的Web交互界面。如果你用过Streamlit&#xff0c;可能会觉得它的界面有点“官方”&#xff0c;布局也比较固定。但这个…...

ssm+java2026年毕设私人医生预约系统【源码+论文】

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于在线医疗问诊服务的研究&#xff0c;现有研究主要以综合性互联网医疗平台的宏观发展分析为主&#xff0c;专门针对基于SSM…...

模型微调集成:OpenClaw调用Qwen3-32B的LoRA适配器实战

模型微调集成&#xff1a;OpenClaw调用Qwen3-32B的LoRA适配器实战 1. 为什么需要本地微调模型接入&#xff1f; 去年我在处理一批医疗文献自动化摘要任务时&#xff0c;发现通用大模型对专业术语的理解总差那么一口气。当模型把"冠状动脉搭桥术"解释成"心脏旁…...

从随机采样到精准决策:蒙特卡罗方法在复杂系统建模中的实践

1. 蒙特卡罗方法&#xff1a;用随机性破解复杂世界的密码 想象你是一位古代数学家&#xff0c;手里只有一把沙子和一块画着方格的石板。现在要计算一个不规则形状的湖泊面积&#xff0c;你会怎么做&#xff1f;最原始的方法可能是把沙子均匀撒在石板上&#xff0c;然后数出落在…...

告别单行输入:在Python IDLE Shell中轻松编辑多行代码的完整指南

告别单行输入&#xff1a;在Python IDLE Shell中轻松编辑多行代码的完整指南 对于Python初学者来说&#xff0c;IDLE Shell是一个既熟悉又陌生的存在。熟悉是因为它随Python安装包默认提供&#xff0c;陌生则源于大多数人仅将其视为简单的交互式命令行工具。实际上&#xff0c;…...

射频电路50Ω阻抗匹配原理与工程实践

射频电路中50Ω阻抗匹配的工程学解析1. 射频传输线阻抗标准的历史渊源1.1 同轴电缆的阻抗优化历程1929年贝尔实验室的系列实验揭示了同轴电缆的两个关键阻抗值&#xff1a;30欧姆可实现最大功率传输&#xff0c;77欧姆则对应最小传输损耗。这两个数值的算术平均值为53.5欧姆&am…...