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

embedded/2024/10/31 11:58:32/

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定时器成为实现基本延时功能的理想选择。


http://www.ppmy.cn/embedded/133858.html

相关文章

Debian 12 安装freeswitch 1.10.12对接Volte视频通话——筑梦之路

# 安装依赖sudo apt update sudo apt install -y git build-essential autoconf automake libtool pkg-config \libjpeg-dev libsqlite3-dev libcurl4-openssl-dev libpcre3-dev libspeexdsp-dev \libspeex-dev libopus-dev libsndfile1-dev libssl-dev libedit-dev libluajit-…

面向对象高级-static

文章目录 1.1 static修饰成员变量1.2 static 修饰成员变量的应用场景1.3 static 修饰成员方法1.4 工具类来看 static 的应用1.5 static 的注意事项1.6 static 应用(代码块)1.7 static应用(单例设计模式) static 读作静态&#xff…

webpack,五大模块

入口(entry)配置 概念:入口起点是 Webpack 构建依赖图的开始。它告诉 Webpack 应该从哪个模块开始构建,并将其作为入口点,然后递归地解析和加载所有相关的模块。实际配置示例 - 单入口应用: 如果是一个简单…

Chromium HTML5 新的 Input 类型time对应c++

一、Input 类型: time time 类型允许你选择一个时间。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> </head> <body><form action"demo-form.php">选择时间: &l…

SCSI驱动与 UFS 驱动交互概况

SCSI子系统概况 SCSI&#xff08;Small Computer System Interface&#xff09;子系统是 Linux 中的一个模块化框架&#xff0c;用于提供与存储设备的通用接口。通过 SCSI 子系统&#xff0c;可以支持不同类型的存储协议&#xff08;如 UFS、SATA、SAS&#xff09;&#xff0c…

流量卡还是随身wifi?你更倾向于哪一个?

上网虽爽&#xff0c;但是千万要警惕“断网”啊&#xff0c;那么&#xff0c;出门在外&#xff0c;随身WiFi和流量卡&#xff0c;看看它们谁更胜一筹&#xff01; 先说结论&#xff0c;小编建议大家是选择买流量卡&#xff0c;买流量卡&#xff0c;买流量卡。 ​ 为什么要选择…

146、LRU缓存-cangjie

题目 146、LRU缓存 思路 数据结构&#xff1a; 使用 HashMap (map) 存储缓存的键值对。键是缓存的键&#xff0c;值是链表节点&#xff0c;可以通过键快速访问。使用 LinkedList (lists) 来维护缓存的顺序。链表从头到尾表示使用时间&#xff0c;头部是最老的元素&#xff0c…

智能扭矩系统Torque在精密制造领域的应用_SunTorque

【大家好&#xff0c;我是唐Sun&#xff0c;唐Sun的唐&#xff0c;唐Sun的Sun。一站式数智工厂解决方案服务商】 在当今高度发达的工业时代&#xff0c;精密制造领域对于产品质量和性能的要求日益严苛。智能扭矩系统作为一项关键技术&#xff0c;正逐渐在这一领域展现出其独特的…