📖 技术文库

STM32 / Arduino / RTOS / 嵌入式 知识文章
展开全部分类 (54)
ESP32双核下FreeRTOS任务与WiFi协议栈抢CPU导致看门狗复位的定位方法
嵌入式 · 👁 81 阅读
ESP32双核运行FreeRTOS时,用户任务与WiFi协议栈争抢CPU常引发任务看门狗复位,现象隐蔽且难以复现。本文从双核调度与看门狗原理入手,给出从复位原因抓取、任务状态快照到CPU占用测量的完整定位流程,并附可落地的代码示例与优先级配置建议,帮助开发者快速锁定饿死协议栈或阻塞中断的根因。
STM32G4 HRTIM 高分辨率定时器在 LLC 谐振变换器中的移相配置与死区补偿
嵌入式 · 👁 98 阅读
本文深入探讨STM32G4系列HRTIM高分辨率定时器在LLC谐振变换器中的应用,重点讲解移相控制配置与死区补偿策略。文章涵盖HRTIM架构原理、LLC移相需求分析、CubeMX配置步骤、完整代码示例以及实际调试中的注意事项,帮助开发者快速掌握高精度PWM控制技巧,提升电源转换效率与可靠性。
ESP32双核FreeRTOS任务与WiFi协议栈抢栈导致看门狗复位的定位方法
嵌入式 · 👁 83 阅读
ESP32双核架构下,FreeRTOS任务与WiFi协议栈共享栈空间,若任务栈分配不足或优先级配置不当,易引发栈溢出并触发看门狗复位。本文深入分析抢栈原理,提供基于栈水位检测、中断跟踪与Core Dump的定位方法,并给出完整代码示例与配置步骤,帮助开发者快速排查此类隐蔽故障。
ESP32双核下用xTaskNotifyFromISR替代队列传递GPIO中断事件的延迟实测
嵌入式 · 👁 72 阅读
在ESP32双核FreeRTOS中,GPIO中断到任务响应的延迟直接影响实时性。本文对比队列与xTaskNotifyFromISR两种事件传递方式,从原理、配置到完整代码,实测中断到任务唤醒的延迟差异,并给出双核绑定、中断优先级与内存屏障等关键注意事项,帮助你在高实时场景下做出更优选择。
用DWT周期计数器测量中断响应延迟:从GPIO翻转看NVIC抢占的真实开销
嵌入式 · 👁 68 阅读
中断响应延迟是嵌入式实时系统的关键指标,但仅靠GPIO翻转和示波器难以精确到CPU周期。本文介绍如何利用Cortex-M内核的DWT周期计数器,配合GPIO翻转,精确测量从外部中断触发到ISR第一条指令执行的周期数,并分析NVIC抢占的真实开销。包含原理讲解、配置步骤、完整代码示例及注意事项,帮助开发者深入理解中断延迟的构成与优化方向。
STM32 HAL库ADC多通道DMA扫描模式:采样顺序与注入通道混用配置详解
嵌入式 · 👁 73 阅读
本文深入剖析STM32 HAL库下ADC多通道DMA扫描模式的采样顺序机制,并详解规则通道与注入通道混用的配置方法。从ADC扫描序列原理、DMA传输映射,到CubeMX配置步骤与完整代码实现,帮助开发者掌握多通道采样的顺序控制、注入通道插队机制及常见避坑要点,适用于电机控制、电源监控等需要灵活采样调度的嵌入式场景。
STM32 HAL库中HAL_Delay在中断上下文里调用导致死锁的成因与规避方案
嵌入式 · 👁 70 阅读
本文深入剖析STM32 HAL库中HAL_Delay在中断服务程序(ISR)中调用引发死锁的根本原因:SysTick中断优先级与中断嵌套机制导致uwTick无法更新。文章从原理出发,给出三种实用规避方案(查询计数、硬件定时器、状态机),并提供完整代码示例与配置步骤,帮助嵌入式开发者避免这一常见陷阱。
STM32 HAL库中__weak函数重定义后中断仍进默认死循环的链接排查
嵌入式 · 👁 79 阅读
在STM32开发中,使用HAL库时,我们常通过重定义__weak函数(如HAL_GPIO_EXTI_Callback)来实现自定义中断处理。但有时明明重定义了函数,中断却依然跳入默认死循环。本文深入剖析__weak机制与链接过程,提供完整的排查步骤和代码示例,帮助开发者快速定位并解决这一隐蔽问题。
STM32 HAL库ADC多通道DMA扫描模式数据错位排查与修正
嵌入式 · 👁 92 阅读
本文针对STM32 HAL库中ADC多通道DMA扫描模式常见的数据错位问题,从原理出发分析错位根源,给出配置步骤与完整代码示例,并提供排查方法与修正方案。内容涵盖ADC扫描顺序、DMA传输对齐、HAL库回调机制等关键点,帮助开发者快速定位并解决多通道采样数据串位问题,提升系统可靠性。
STM32 HAL库中HAL_Delay的SysTick优先级陷阱:中断里调用导致死锁的复现与修复
嵌入式 · 👁 84 阅读
本文深入剖析STM32 HAL库中HAL_Delay依赖SysTick中断的工作原理,揭示在高于SysTick优先级的中断服务函数中调用HAL_Delay会导致系统死锁的陷阱。通过实际代码复现死锁现象,分析根本原因,并提供三种修复方案:调整中断优先级、使用非阻塞延时、重写延时函数。文章包含完整配置步骤与代码示例,帮助开发者规避这一常见但隐蔽的嵌入式陷阱。
STM32 HAL库中DMA+空闲中断实现不定长串口帧接收的配置与踩坑记录
嵌入式 · 👁 97 阅读
串口不定长帧接收是嵌入式开发中的常见需求,传统逐字节中断方式占用CPU资源且易丢数据。本文基于STM32 HAL库,详细讲解如何利用DMA传输配合串口空闲中断(IDLE)实现高效的不定长帧接收,涵盖原理分析、CubeMX配置步骤、完整代码示例,并总结实际调试中遇到的典型问题与解决方案,帮助开发者避开常见陷阱。
STM32 HAL库ADC多通道DMA扫描模式:采样顺序与数据对齐陷阱排查
嵌入式 · 👁 90 阅读
本文深入剖析STM32 HAL库下ADC多通道DMA扫描模式的采样顺序与数据对齐陷阱。通过原理讲解、CubeMX配置步骤、完整代码示例及常见问题排查,帮助开发者理解规则组序列、DMA传输对齐及数据缓冲区映射,避免因配置不当导致的数据错位与精度损失,提升多通道采集系统的可靠性。