FreeRTOS系统时钟配置实战:从SysTick到Tickless模式的完整指南(STM32版)

FreeRTOS系列二:FreeRTOS系统配置 所以,如果外部晶振的频率已经确定了,那么确定PLL_M,PLL_N,PLL_P的系数就可以得到对应频率的系统时钟SYSCLK,其中PLL_M,PLL_N,PLL_P可以有多种组合,只要满足相应的条件即可。例如,假设外部晶振为8M,对STM32F407来说,系统时钟的最大频率为168M,那么久可以分别设置PLL_M = 8,PLL_N = 336,PLL_P = 2。其中PLL_M,PLL_N,PLL_P,PLL_Q是一个分频器,而PLL_M是一个倍频器。主PLL产生的时钟一般会用作系统时钟。 阅读详情

FreeRTOS系统时钟配置实战:从SysTick到Tickless模式的完整指南(STM32版)

如果你正在使用STM32开发嵌入式产品,并且选择了FreeRTOS作为实时操作系统,那么系统时钟的配置绝对是你无法绕开的核心环节。这不仅仅是让系统“跑起来”那么简单,它直接关系到任务调度的实时性、系统功耗的控制精度,甚至是整个产品的稳定性和可靠性。很多开发者初期可能会直接套用模板,但当项目深入,遇到任务响应不及时、功耗居高不下或者进入低功耗后唤醒异常等问题时,根源往往就藏在时钟配置的细节里。这篇文章,我将结合在多个STM32项目中的实战经验,抛开那些泛泛而谈的理论,带你从零开始,一步步构建一个既精准又高效的FreeRTOS时钟系统,并深入探讨如何利用Tickless模式为电池供电设备“续命”。无论你是刚接触FreeRTOS的新手,还是希望优化现有系统的老手,这里都有你需要的干货。

1. 理解FreeRTOS时钟节拍:不只是SysTick那么简单

FreeRTOS作为一个抢占式内核,其任务调度、延时、软件定时器等所有与时间相关的功能,都依赖于一个稳定、周期性的“心跳”——我们称之为时钟节拍(Tick)。这个心跳的频率由 configTICK_RATE_HZ 定义,它决定了操作系统时间管理的最小粒度。

1.1 时钟节拍频率的权衡艺术

设置 configTICK_RATE_HZ 并非一个随意的决定,它是一场在精度与开销之间的微妙平衡。

  • 高频率(如1000Hz,即1ms/tick):时间分辨率高,延时更精确,任务响应看起来更“及时”。这对于需要快速响应用户输入(如按键检测)或控制高频PWM的任务非常有利。
  • 低频率(如100Hz,即10ms/tick):显著降低了系统开销。因为每次Tick中断,内核都需要检查所有任务的状态、更新定时器、可能触发上下文切换。频率越低,CPU被中断打断的次数就越少,整体效率更高,也更省电。

那么,如何选择?我的经验是:

提示:对于大多数物联网终端设备、消费电子类产品,200Hz到500Hz是一个比较理想的折中点。它提供了5ms到2ms的精度,足以满足绝大部分任务调度和通信超时处理的需求,同时系统开销可控。除非你的应用有严格的毫秒级甚至亚毫秒级定时需求,否则不建议盲目追求1000Hz。

下面是一个在 FreeRTOSConfig.h 中配置的典型示例:

#define configTICK_RATE_HZ ( ( TickType_t ) 500 ) // 设置为500Hz,即2ms一个Tick

1.2 硬件定时器的选择:SysTick是唯一答案吗?

对于Cortex-M内核的STM32,SysTick定时器是FreeRTOS默认且最常用的时钟源。它是ARM内核的一部分,与芯片厂商无关,因此FreeRTOS的移植层(port.c)已经为其做好了适配,开箱即用。

但是,SysTick并非唯一选择。在某些特定场景下,你可能需要考虑使用通用定时器(如TIM2, TIM3等):

定时器类型优点缺点适用场景
SysTick内核自带,无需额外外设;FreeRTOS原生支持好;代码简洁。通常与系统时钟同源,在深度睡眠时可能停止;灵活性相对较低。绝大多数情况下的首选,特别是对功耗不敏感或使用普通睡眠模式的应用。
通用定时器时钟源可选(内部/外部),可在系统深度睡眠时由独立时钟(如LSI)驱动;灵活性高,可产生不同频率。需要占用一个外设资源;需自行编写中断服务程序并与FreeRTOS对接;配置稍复杂。需要实现超低功耗Tickless模式(下文详述),或系统时钟源非常特殊的情况。

对于新手和大多数应用,坚持使用SysTick是最稳妥、最高效的选择。我们接下来的配置也将围绕SysTick展开。

2. 基于SysTick的时钟配置实战(STM32CubeIDE环境)

让我们以STM32F4系列和流行的STM32CubeIDE开发环境为例,手把手完成配置。这里假设你已经通过CubeMX生成了基础工程并选择了FreeRTOS。

2.1 核心配置项详解

首先,打开 FreeRTOSConfig.h 文件。这个文件包含了所有FreeRTOS的可裁剪配置。

  1. 设置CPU时钟频率:这告诉FreeRTOS你的主频是多少,用于计算SysTick重装载值。

    #define configCPU_CLOCK_HZ ( SystemCoreClock )
    

    SystemCoreClock 是一个全局变量,在系统启动后由HAL库初始化,代表了实际的CPU核心时钟频率(例如168MHz)。

  2. 设置Tick频率:如前所述,根据你的应用需求设定。

    #define configTICK_RATE_HZ ( ( TickType_t ) 500 )
    
  3. 配置SysTick时钟源:对于STM32,SysTick可以使用与CPU同频的时钟(configCPU_CLOCK_HZ),也可以使用经过8分频的时钟。为了精度,我们通常选择前者。

    #define configSYSTICK_CLOCK_HZ ( configCPU_CLOCK_HZ )
    

2.2 中断优先级的关键设置

这是很多问题的根源!FreeRTOS管理任务切换依靠的是PendSV和SysTick中断。为了确保内核调度不会被高优先级的中断打断而导致任务延迟不可控,必须遵循一个铁律:

SysTick中断优先级必须设置为最低的可抢占优先级。

在Cortex-M中,优先级数值越小,优先级越高。FreeRTOS的移植文件 port.c 中的 xPortStartScheduler() 函数会自动配置SysTick和PendSV的优先级。你需要确保的是,你应用程序中其他所有中断的优先级,都必须高于(数值小于)SysTick的优先级。

如何检查?在STM32CubeMX中配置FreeRTOS时,NVIC设置里可以看到“SysTick interrupt”的优先级。FreeRTOS通常将其设置为 15(假设使用4位优先级,0-15)。那么,你的USART、SPI、ADC等中断优先级就应该设置在0-14之间。

注意:千万不要在应用程序中随意调用 NVIC_SetPriority(SysTick_IRQn, ...) 来修改SysTick优先级,这会导致FreeRTOS调度异常。

2.3 启动调度器背后的时钟初始化

当你调用 vTaskStartScheduler() 时,它会内部调用 xPortStartScheduler()。这个函数的一个核心任务就是初始化SysTick定时器。它根据 configSYSTICK_CLOCK_HZ 和 configTICK_RATE_HZ 计算出重装载值(RELOAD),并启动定时器中断。

计算公式很简单:重装载值 = (时钟源频率 / Tick频率) - 1

例如,CPU主频168MHz,Tick频率500Hz,则重装载值 = (168,000,000 / 500) - 1 = 335,999。这个计算过程在 port.c 中已经自动完成,你无需手动干预,但理解它有助于调试。

3. 深入Tickless低功耗模式:让设备“睡”得更香

对于电池供电的设备(如传感器节点、遥控器、穿戴设备),功耗就是生命线。传统的FreeRTOS即使在没有任务需要执行时(空闲状态),也会被周期性的Tick中断唤醒,这阻止了CPU进入深睡眠。Tickless模式就是为了解决这个问题而生。

3.1 Tickless模式原理浅析

Tickless,顾名思义就是“无Tick”。其核心思想是:当系统进入空闲状态,且预测的空闲时间超过一个Tick时,就关闭周期性的SysTick中断,并编程一个单独的定时器(可以是另一个通用定时器,也可以是重新配置的SysTick),让它刚好在下一个需要执行任务的时间点产生一次中断,唤醒系统。在此期间,CPU可以进入深度睡眠状态,功耗大幅降低。

3.2 在STM32上配置Tickless模式

  1. 启用宏定义:在 FreeRTOSConfig.h 中开启Tickless模式。

    #define configUSE_TICKLESS_IDLE 2 // 使用模式2,更省电
    

    模式1 (1) 是简单的实现,模式2 (2) 是官方推荐的、更省电的实现,它会计算并补偿进入和退出低功耗模式所消耗的时间,精度更高。

  2. 设置预期空闲时间:这个宏定义了系统进入Tickless模式前,预期的最小空闲Tick数。如果空闲时间太短,进出低功耗的开销可能得不偿失。

    #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2 // 默认2个Tick
    

    如果你的Tick是2ms,那么这意味着只有当系统预测至少空闲4ms时,才会尝试进入Tickless模式。

  3. 实现硬件相关函数:Tickless模式需要你提供几个平台相关的函数,通常需要修改 port.c 或在一个单独的文件中实现。FreeRTOS为Cortex-M提供了默认实现,但你可能需要根据STM32的低功耗特性进行调整。关键函数包括:

    • vPortSuppressTicksAndSleep():这是核心函数,由FreeRTOS在空闲时调用。它负责关闭SysTick,计算睡眠时间,配置唤醒定时器,然后调用低功耗进入函数。
    • 低功耗进入/退出函数:你需要在这里调用HAL库的 HAL_PWR_EnterSLEEPMode() 或 HAL_PWR_EnterSTOPMode() 等函数。

    一个常见的挑战是,SysTick在深度睡眠(Stop模式)下可能会停止。因此,Tickless模式常常需要配合一个在低功耗模式下依然运行的定时器,比如低功耗定时器(LPTIM)或者由低速内部时钟(LSI)驱动的通用定时器(TIM)。这需要更复杂的配置,涉及切换时钟源。

3.3 Tickless模式实战注意事项

  • 外设状态管理:进入深度睡眠前,需妥善保存外设状态,并在唤醒后恢复。STM32的HAL库提供了一些辅助函数,但需要仔细处理。
  • 唤醒源:除了Tickless的定时器唤醒,你的设备可能还需要响应GPIO中断(按键)、RTC闹钟等。要确保这些唤醒源的配置与低功耗模式兼容。
  • 调试困难:一旦进入深度睡眠,调试器连接可能会断开。可以使用一个GPIO引脚输出高低电平,用逻辑分析仪来观察CPU睡眠和唤醒的时机。
  • 功耗测量:务必使用电流表或功耗分析仪实际测量启用Tickless模式前后的功耗差异,这是检验配置成功与否的唯一金标准。

4. 调试技巧与常见问题排查

时钟配置问题有时非常隐蔽,这里分享几个实用的调试方法。

问题一:任务调度似乎“慢半拍”,延时不准。

  • 检查点:
    1. 首先确认 SystemCoreClock 的值是否正确。在 main() 函数初始化后,打印或通过调试器查看这个变量,确保它和你预想的系统时钟频率(如168MHz)一致。
    2. 检查 configTICK_RATE_HZ 的计算。使用一个GPIO翻转,在SysTick中断服务程序里翻转引脚,用示波器测量实际周期是否等于 1/configTICK_RATE_HZ。
    3. 排查中断干扰:使用一个高优先级任务,循环打印 xTaskGetTickCount(),观察其增长是否均匀。如果出现跳跃,很可能是有高优先级的中断处理时间过长,阻塞了SysTick中断或任务调度。

问题二:系统进入低功耗后无法唤醒,或唤醒后行为异常。

  • 检查点:
    1. 确认唤醒定时器:如果使用了通用定时器作为Tickless的唤醒源,确保该定时器的时钟在低功耗模式下是激活的(例如使用LSI)。
    2. 检查中断标志:在唤醒后的初始化代码中,清除所有可能悬而未决的中断标志。
    3. 简化测试:先屏蔽所有其他外设和中断,只保留最基本的Tickless功能,看是否能正常睡眠和定时唤醒。然后逐步添加其他功能模块,定位冲突点。

问题三:使用vTaskDelay()或任务阻塞函数时,时间远长于预期。

这很可能是因为在低功耗模式下,configTICK_RATE_HZ 的基准变了。例如,在Tickless模式下,如果大部分时间CPU都在睡眠,那么“Tick”的概念就变成了“由唤醒定时器模拟的Tick”。确保 vPortSuppressTicksAndSleep() 函数中对已睡眠时间的补偿计算是正确的。可以尝试暂时关闭Tickless模式,看问题是否消失,来锁定问题范围。

配置FreeRTOS的时钟系统,尤其是深入Tickless模式,是一个从“能用”到“好用、省电”的关键跨越。它要求开发者不仅理解操作系统的原理,还要熟悉自家MCU的时钟树和低功耗架构。最好的学习方式就是动手:从一个简单的点灯任务开始,用逻辑分析仪观察Tick,然后逐步引入低功耗配置,用电流表验证效果。这个过程里踩的每一个坑,都会让你对嵌入式系统的理解更深一层。

FreeRTOS低功耗模式实战:Tickless Idle原理与STM32L4深度休眠配置 在嵌入式系统与物联网设备开发中,低功耗设计是延长电池寿命的关键技术。其核心原理在于通过合理的电源管理策略,使微控制器在空闲时进入深度睡眠状态,从而大幅降低系统功耗。这项技术的核心价值在于能够为电池供电的传感器、可穿戴设备等场景提供长达数年的续航能力。实现低功耗通常需要软硬件协同,涉及对实时操作系统内核机制的理解与芯片低功耗特性的运用。FreeRTOS作为广泛应用的实时操作系统,其Tickless Idle模式提供了一种将任务调度与硬件低功耗模式桥接的策略。该模式通过动态关闭系统节拍定时器,并利用低功耗定时器 阅读详情

相关推荐

FreeRTOS在STM32F4上的低功耗实战:用Tickless模式省电50%的配置步骤

本文详细介绍了如何在STM32F4平台上配置FreeRTOS的Tickless低功耗模式,以实现超过50%的功耗降低。通过STM32CubeMX工具进行关键参数设置,并结合RTC Wakeup定时器手动实现休眠与唤醒驱动,为物联网设备提供了清晰的可落地配置方案。文章深入剖析了Tickless模式的核心原理、设计考量及实战注意事项。

weixin_29231027的博客 538

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(2-10:低功耗 Tickless 模式)

学习之路主要为操作系统在STM32F103()上的运用,采用的是编程的方式,使用的为KEIL5。注意!!!本学习之路可以通过购买STM32板以及部分配件的方式进行学习,也可以通过Proteus仿真的方式进行学习。后续文章会同时发表在个人博客(jason1016.club)、优快云;视频会发布在bilibili(UID:399951374)

weixin_61908666的博客 2458

FreeRTOS实战避坑指南:在STM32上配置Tickless低功耗模式时,如何避免任务唤醒失败

本文深入解析FreeRTOS在STM32上配置Tickless低功耗模式时常见的任务唤醒失败问题,提供硬件适配陷阱、唤醒失效根源及诊断方法、外设模块低功耗协同设计等解决方案。特别针对STM32时钟树配置、低功耗模式选择、SysTick补偿算法等关键点,给出实战避坑指南,帮助开发者优化物联网终端设备的功耗表现。

weixin_30765577的博客 465

Tickless低功耗模式

一般的MCU都有相应的低功耗模式,裸机开发时可以使用MCU的低功耗模式(睡眠、待机、停止)FreeRTOS也提供了一个叫Tickless的低功耗模式,方便带FreeRTOS操作系统的应用开发。

2301_76762351的博客 435

7. STM32低功耗实战:从理论到FreeRTOS tickless模式实现

本文深入探讨了STM32低功耗设计的基础概念与FreeRTOS tickless模式的实现方法。通过分析STM32L4系列的低功耗架构、电源管理设计及外设时钟门控技术,结合FreeRTOS的Tickless模式,详细介绍了如何从理论到实践实现超低功耗运行。文章还提供了完整的实现方案与调试技巧,帮助开发者优化电池供电设备的功耗表现。

weixin_33853794的博客 315

STM32F1 HAL库下FreeRTOS移植与时钟配置实战

本文详细介绍了在STM32F1 HAL库环境下进行FreeRTOS移植与时钟配置的实战步骤。重点解决了SysTick中断冲突问题,提供了修改中断处理函数和配置时钟源的完整方案,确保FreeRTOS与HAL库协同工作。文章还涵盖了内存管理优化、任务优先级设置及常见问题排查方法,为嵌入式开发者提供了一套可靠的移植指南。

a3b4c5的博客 866

FreeRTOS操作系统——低功耗Tickless模式实验

FreeRTOS操作系统学习 文章目录FreeRTOS操作系统学习前言一、低功耗模式实验二、具体实验1.低功耗相关函数2.实验现象总结 前言 一、低功耗模式实验 实验目的: 学习如何使用 FreeRTOS 的低功耗 Tickless 模式,观察 Tickless 模式对于降低系统功耗有无帮助。 实验设计: 对于功耗要求严格的场合一般不要求有太大的数据处理量,因为功耗与性能很难兼得。一般的低功耗场合都是简单的数据采集设备或者小型的终端控制设备。它们的功能都很简单,周期性的采集数据并且发送给上层,比如服务器,或

戚晨夕的博客 2928

TCP/IP协议栈之LwIP(三)---网际寻址与路由(IPv4 + ARP + IPv6)

一、网际寻址原理 当网络设备地址总数并不是很多的情况下,有了唯一地址(比如MAC地址)就可以定位相互通信的主体。然而,当地址总数越来越多时,如何高效地从中找出通信的目标地址将成为一个重要的问题。为此人们发现地址除了具有唯一性还需要具有层次性。MAC地址虽然具有唯一性,但没有层次性,也即当网络设备增加到一定程度,需要将网络分成多个数据链路时,MAC地址无法跨链路寻址,是真正负责最终通信的地址。要实现跨局域网的网际寻址,就要靠具有层次性的网络IP地址实现了。

流云 6821

【FreeRTOS】14 Tickless低功耗模式

本节我们来讲讲FreeRTOS的低功耗模式——tickless的相关知识。

小白白学电子 2433

转录组PCA分析3大常见误区:数据标准化、离群样本与批次效应处理

本文深入探讨转录组PCA分析中的三大常见误区:数据标准化、离群样本识别与批次效应处理。通过实战案例和R代码演示,揭示如何优化PCA结果以提升生物学解释力,特别关注数据标准化策略的选择和批次校正方法的应用,帮助研究者避免常见陷阱并获得可靠的转录组分析结果。

weixin_28362173的博客 373

VSCode配置C/C++开发环境:从零安装MinGW-w64并运行第一个C程序

在Windows系统上搭建C语言开发环境时,很多初学者混淆编辑器、编译器与调试器的分工,导致配置过程屡屡受挫。理解VSCode作为轻量级编辑器的定位,以及MinGW-w64提供的gcc编译器在源码编译中的核心作用,是顺利完成环境配置的关键。环境变量的正确设置直接影响gcc命令能否全局调用,而C/C++插件则赋予编辑器语法高亮与智能提示能力。通过安装VSCode、配置MinGW-w64、安装插件、汉化界面并运行一个最简单的hello.c程序,就能系统掌握这套开源工具链的完整工作流。无论是用于课程学习、算法练习

weixin_42531923的博客 534

FreeRTOS操作系统——低功耗Tickless模式(十九)

FreeRTOS操作系统学习 文章目录FreeRTOS操作系统学习前言一、低功耗模式二、Tickless模式1、低功耗详解2、具体实现总结 前言 很多应用场合对于空耗的要求很严格,比如长期无人照看的数据采集仪器,可穿戴设备等。其实很多 MCU 都有相应的低功耗模式,以此来降低设备运行时的功耗,进行裸机开发的时候就可以使用这些低功耗模式。但是现在我们要使用操作系统,因此操作系统对于低功耗的支持也显得尤为重要,这样硬件与软件相结合,可以进一步降低系统的功耗。这样开发也会方便很多,毕竟系统已经原生支持低功耗了,我

戚晨夕的博客 9388

基于YOLOv8-obb的自动车牌检测与CRNN车牌识别

基于YOLOv8-obb模型实现了针对带角度车牌的自动检测,并结合CRNN(Convolutional Recurrent Neural Network)技术进行车牌字符识别,旨在提高复杂场景下车牌识别系统的准确性和鲁棒性

坚强的强酸柠檬的博客 1146

FreeRTOS的基础时钟

在STM32CubeMX启用FreeRTOS后,在导出代码时会出现一个如图4所示的对话框。提示在使用FreeRTOS时,强烈建议将HAL的基础时钟设置为非SysTick定时器。在前面的示例中,我们都是将HAL的基础时钟设置为定时器TIM6,但并未详细说明这么做的原因。 在前一节已经介绍了HAL基础时钟的作用,以及使用SysTick定时器或TIM6定时器作为HAL基础时钟时的工作原理。通过前面章节...

HongAndYi的博客 8875

Xilinx IP库在Modelsim/Questasim中的高效仿真实践

本文详细介绍了在Modelsim/Questasim中高效仿真Xilinx FPGA设计的核心方法。针对仿真时常见的IP核缺失错误,重点解析了两种主流解决方案:使用Vivado的compile_simlib命令自动编译完整仿真库,以及利用export_simulation命令为特定工程生成仿真脚本。文章还提供了手动配置库的深入理解、实战排错步骤及高级避坑指南,帮助用户构建稳定、高效的独立仿真环境。

sony5的博客 1231

uniapp [全端兼容] - 实现集成配置百度语音识别转文字,长按或开启录音并将录音文件实时转换为文字,百度智能云API实现上传录音文件并转换成文字案例(苹果安卓App、微信小程序、移动端H5网页)

uniapp对接百度智能云语音识别,uniapp中实现语音识别(app+小程序),百度语音识别录音转文字_百度智能云,uniapp使用百度语音识别语音转文字,uniapp小程序调用百度语音识别,uni-app 百度语音识别文字并展示功能,uniapp配置自定义界面百度语音识别转文字和原生使用方式,uniapp使用百度语音,uni-app语音转文字功能,使用UniApp技术实现录音并将录音转换为文字,uniapp如何实现语音输入功能功能,Uniapp集成百度智能云API实现录音转文字详细教程完整示例代码dem

🏆 前端领域优质创作者 1万+

FreeRTOS—Tickless低功耗模式

Tickless(无系统节拍) 是一种用于实时操作系统(RTOS,如FreeRTOS、RT-Thread等)的低功耗技术,它通过动态调整 SysTick 来减少不必要的 CPU 唤醒,从而降低功耗。Tickless 模式:当系统进入空闲状态时,RTOS 会计算下一个任务的最早唤醒时间,并暂时关闭 SysTick,让 CPU 进入低功耗状态(如睡眠模式)。在任务就绪前,再通过低功耗定时器(如RTC 或 LPTIM)唤醒 CPU。其实 Tickless 低功耗模式的本质是通过调用指令 WFI 实现睡眠模式。

m0_75103637的博客 1600

从 Open SQL JOIN 走向 ABAP CDS Association:把查询写成可复用的数据模型

摘要: 本文通过飞行模型示例,对比了ABAP中三种表关联实现方式:Open SQL JOIN、CDS显式JOIN和CDS Association。重点解析了Association的本质是将表关系声明为数据模型语言,使用时通过路径表达式按需展开为JOIN。文章指出路径表达式在不同位置会默认展开为不同JOIN类型(如SELECT列表默认为LEFT OUTER),并演示了如何用[inner]强制指定INNER JOIN。最后结合S/4HANA实际案例,说明Association通过中心化关系定义和路径复用,能有效

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 386

STM32L4 运行FreeRTOS之STOP2低功耗模式

最近做一个物联网的项目,由于功能比较多,为了简化程序逻辑,所以使用了FreeRTOS操作系统,MCU为STM32L431。FreeRTOS的源码只实现了sleep级别低功耗模式(需要定义#define configUSE_TICKLESS_IDLE 1),此模式只有CPU停止运行,功耗有几个mA电流。STOP模式2是MCU能被一些外设唤醒的最低功耗模式。但...

professionalmcu的专栏 1万+

《QGIS快速入门与应用基础》161:面要素顶点编辑与形状调整

本文系统讲解了QGIS中面要素顶点编辑与形状调整的核心操作。首先明确了顶点编辑的适用场景与核心概念,强调需满足图层类型、编辑模式、要素选择等六大前提。详细介绍了编辑顶点工具(F2键)的激活路径及配套辅助工具,通过耕地地块修正案例,分步骤演示顶点移动、添加(双击/工具栏)、删除(Delete键)三大基础操作。同时提供捕捉工具开启、画布缩放等实用技巧,帮助用户高效完成面要素的精细化调整,解决实际工作中的形状偏差问题。全文图文结合,步骤清晰,适合GIS新手快速掌握面要素编辑的核心技能。

LuckyHanMo的博客 492

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

FreeRTOS的Tickless低功耗模式

FreeRTOS Tickless低功耗模式通过暂停SysTick定时器让MCU进入深度睡眠,显著降低空闲功耗。该模式适用于电池供电设备,在系统空闲时计算最长休眠时间,暂停任务调度基准,由外部中断或定时器唤醒后恢复系统时钟并校准Tick计数。实现涉及内核空闲任务检测、硬件适配层睡眠配置及唤醒后的时间补偿机制,需合理选择低功耗模式(睡眠/停机/待机)并处理时钟恢复问题。关键点包括WFI/WFE指令使用、独立定时器计时补偿及唤醒中断配置,可延长电池设备续航时间,但需权衡低功耗与实时性需求。

2301_79695216的博客 1322

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

在STM32上使用FreeRTOS的Tickless(停止模式)

在STM32上使用FreeRTOS的Tickless(停止模式) RTOS的Tickless功能就是当程序运行在空闲任务中时,就进入低功耗模式,这个低功耗可以是普通的睡眠模式,也可以是停止模式。RTOS在进入空闲任务前,会计算出将要在空闲任务里跑多久,然后进入到空闲任务里就设置多久触发中断的定时器,从设置定时器到定时器产生中断这个时间段就可以进入低功耗模式。这就是RTOS的Tickless原理。 1.打开低功耗定时器LPTIM1,使用默认配置即可,最后打开NVIC中断开关。 2.LPTIM1的时钟源选择L

qq_43527819的博客 3119

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【STM32/FreeRTOS】SysTick定时器及FreeRTOS系统节拍

SysTick共有4个相关寄存器,通常只用到3个(校准寄存器少用)。寄存器名称寄存器描述CTRLSysTick控制及状态寄存器LOADSysTick重装载数值寄存器VALSysTick当前数值寄存器CALIBSysTick校准数值寄存器。

AuroraSmith的博客 3210

FreeRTOS低功耗实战:Tickless模式与系统时钟配置详解

本文深入解析了FreeRTOS的Tickless低功耗模式,通过分离HAL库与FreeRTOS的时钟源(如SysTick与TIM6),解决系统在空闲时因周期性Tick中断导致的高功耗问题。文章详细阐述了Tickless模式的预测性休眠原理、关键配置步骤,并提供了基于STM32CubeMX的实战配置指南与功耗测量对比,帮助开发者显著延长物联网设备的电池续航时间。

dropout6artist的博客 467

FreeRTOS Tickless模式深度解析:从低功耗原理到STM32实战

在嵌入式系统开发中,低功耗设计是延长电池续航的关键技术。其核心原理在于通过动态管理CPU的工作状态,在空闲时进入深度睡眠以减少能耗。Tickless模式作为一种先进的低功耗技术,通过暂停周期性的系统节拍中断,允许CPU在无任务执行时进入不受打扰的深度休眠,仅在下一个预定事件发生时被唤醒,从而大幅降低静态功耗。这项技术对于物联网设备、便携式传感器等对续航有严苛要求的应用场景具有极高价值。本文聚焦于FreeRTOS的Tickless实现,结合stm32低功耗与freertos堆栈溢出检测等实践热点,深入剖析其工

weixin_34008933的博客 324
上一篇: XCOM串口调试助手隐藏功能盘点:数据颜色标记+历史记录回溯技巧
下一篇: 从零到一:基于STM32 HAL库的FreeRTOS实战移植与核心功能开发
Python
博客等级 码龄26年 1973粉丝 1567原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值