📖 技术文库

STM32 / Arduino / RTOS / 嵌入式 知识文章
展开全部分类 (54)
ESP32双核下用xTaskCreatePinnedToCore固定任务核后WiFi断流的优先级反转分析
嵌入式 · 👁 48 阅读
本文针对ESP32双核开发中,使用xTaskCreatePinnedToCore将任务固定到特定核心后出现的WiFi断流问题,深入分析其背后的优先级反转机制。通过原理讲解、配置步骤、完整代码示例和注意事项,帮助开发者理解FreeRTOS任务调度与WiFi协议栈的交互,并提供解决方案,避免网络通信异常。
STM32 HAL库DMA+空闲中断接收不定长串口数据:彻底解决半包与粘包导致的解析错位
嵌入式 · 👁 44 阅读
本文深入剖析STM32 HAL库下DMA+空闲中断接收不定长串口数据时,半包与粘包问题的根源,提出基于环形缓冲区与帧边界检测的可靠方案。包含原理讲解、CubeMX配置步骤、完整代码示例及关键注意事项,帮助开发者实现稳定高效的串口通信。
STM32 HAL库ADC多通道DMA采集通道顺序错乱的排查与修复
嵌入式 · 👁 46 阅读
本文针对STM32 HAL库中ADC多通道DMA采集时常见的通道顺序错乱问题,从ADC扫描模式、DMA传输机制和HAL库配置细节入手,分析错乱根源,提供完整的排查步骤与修复方案。通过原理讲解、配置对比和代码示例,帮助开发者彻底解决数据与通道不匹配的难题,提升采集系统可靠性。
FreeRTOS任务栈溢出检测实战:uxTaskGetStackHighWaterMark实测方法与阈值设定
嵌入式 · 👁 40 阅读
任务栈溢出是FreeRTOS项目中最隐蔽的崩溃源之一。本文从栈增长方向与高水位线原理讲起,给出uxTaskGetStackHighWaterMark的实测流程、单位换算、阈值设定经验公式,并提供可直接落地的周期检测代码与钩子函数方案,帮助你在量产前把栈风险量化并收敛。
STM32 HAL库ADC多通道DMA扫描模式数据错位排查与重排方案
嵌入式 · 👁 46 阅读
本文针对STM32 HAL库ADC多通道DMA扫描模式下常见的数据错位问题,从原理出发分析错位根源,提供基于DMA传输完成中断与数组索引重排的解决方案,并给出完整代码示例与配置步骤。内容涵盖ADC扫描顺序、DMA循环模式配置、数据对齐及常见陷阱,帮助开发者快速定位并修复多通道采样数据错位问题。
STM32 HAL库DMA+空闲中断接收不定长串口数据:环形缓冲实现与踩坑全记录
嵌入式 · 👁 39 阅读
串口不定长数据接收是嵌入式开发中的高频需求。本文深入剖析STM32 HAL库下DMA+空闲中断的协作原理,给出基于环形缓冲区的完整实现方案,并分享实际调试中遇到的DMA指针错位、中断优先级冲突、缓冲区溢出等典型问题与解决方案,帮助开发者避开常见陷阱,构建稳定高效的串口通信框架。
ESP32双核FreeRTOS队列传递ADC数据:缓存溢出定位与实战解决
嵌入式 · 👁 44 阅读
ESP32双核下使用FreeRTOS队列传递ADC采样数据时,缓存溢出是常见且隐蔽的故障。本文从队列原理出发,剖析溢出成因,给出基于uxQueueMessagesWaiting、uxTaskGetStackHighWaterMark等API的定位方法,并提供完整可复现的代码示例与配置步骤,帮助开发者快速锁定并解决溢出问题。
从零实现FreeRTOS事件组替代二值信号量:减少上下文切换的实战改造
嵌入式 · 👁 44 阅读
在嵌入式实时系统中,频繁的上下文切换会消耗CPU资源并增加延迟。本文针对FreeRTOS中二值信号量在同步场景下的性能瓶颈,提出使用事件组进行替代的实战改造方案。通过原理分析、配置步骤和完整代码示例,展示如何利用事件组的多事件等待特性减少不必要的任务切换,提升系统响应效率。适合有一定FreeRTOS基础的开发者阅读。
STM32 HAL库中DMA+空闲中断实现不定长串口收包的溢出边界处理
嵌入式 · 👁 49 阅读
本文深入探讨STM32 HAL库下利用DMA与串口空闲中断实现不定长数据接收时,如何正确处理缓冲区溢出边界问题。文章分析DMA传输机制与空闲中断原理,给出完整的配置步骤与代码示例,并重点讨论溢出检测、缓冲区切换及错误恢复策略,帮助开发者构建稳定可靠的串口通信框架。
基于DWT周期计数器在Cortex-M上实现微秒级函数耗时统计与性能剖析
嵌入式 · 👁 48 阅读
在嵌入式开发中,精确测量函数执行时间对性能优化至关重要。本文介绍如何利用Cortex-M内核的DWT周期计数器,实现纳秒级分辨率的函数耗时统计。文章涵盖DWT原理、配置步骤、完整代码示例及注意事项,帮助开发者快速构建轻量级性能剖析工具,适用于STM32等Cortex-M系列MCU。
STM32定时器输入捕获测频率:预分频与自动重装值的协同优化策略
嵌入式 · 👁 48 阅读
输入捕获测频率时,低频分辨率与高频防溢出常相互矛盾。本文深入分析STM32定时器预分频器(PSC)与自动重装寄存器(ARR)的配合机制,提出动态调整策略:通过测量周期动态切换PSC和ARR,实现低频高分辨率与高频不溢出的兼顾。包含原理推导、配置步骤、完整代码示例及注意事项,帮助开发者提升频率测量范围与精度。
ESP32双核任务分配实战:用xTaskCreatePinnedToCore把WiFi协议栈与业务逻辑隔离
嵌入式 · 👁 53 阅读
ESP32双核特性常被忽视,默认WiFi协议栈与用户任务争抢CPU0导致响应抖动。本文详解FreeRTOS任务绑定核心API xTaskCreatePinnedToCore,从原理、配置步骤到完整代码,演示将WiFi协议栈固定于Core0、业务逻辑运行于Core1,实现硬实时隔离,并给出优先级、栈大小与IPC通信的避坑指南。