蘑
菇
助手
MCU助手 · 单片机工具箱
登录
注册
🏠
首页
🧰
工具
📖
文库
❓
问答
✍️
提问
🏠 首页 /
技术文库
📖 技术文库
STM32 / Arduino / RTOS / 嵌入式 知识文章
全部
STM32
STM32 定时器
STM32 串口
STM32 ADC
Arduino 入门
STM32 看门狗
STM32 I2C
STM32 DMA
STM32 低功耗
STM32 编码器
RTOS RTOS
STM32 PWM
嵌入式 IO
STM32 SPI
STM32 中断
STM32 时钟
STM32 存储
Arduino 进阶
ESP32 WiFi
嵌入式 协议
STM32 CAN
STM32 USB
STM32 RTC
STM32 DAC
STM32 GPIO
STM32 传感器
嵌入式 架构
STM32 Boot
嵌入式 调试
STM32 电机
嵌入式 PCB
ESP32 低功耗
STM32 寄存器
嵌入式 C语言
STM32 架构
STM32 显示
STM32 外设
嵌入式 内存
STM32 工具
STM32 调试
嵌入式 稳定性
嵌入式 电源
STM32 安全
嵌入式 RTOS
嵌入式 存储
STM32 Bootloader
STM32 协议
ESP32 物联网
ESP32 OTA
ESP32 蓝牙
嵌入式 显示
嵌入式 驱动
嵌入式 电机
STM32 入门
RTOS 看门狗
嵌入式 CAN
项目 实战
嵌入式 控制
嵌入式 蓝牙
嵌入式 传感器
嵌入式
展开全部分类 (54)
STM32定时器输入捕获测PWM占空比时,高电平宽度漂移的根因与排查:预分频与捕获边沿配置详解
嵌入式 · 👁 9 阅读
许多开发者在用STM32定时器输入捕获测量PWM占空比时,发现高电平宽度随信号频率变化而漂移,导致占空比计算错误。本文从输入捕获原理出发,深入分析预分频器与捕获边沿配置对测量结果的影响,揭示漂移的根源,并提供完整的配置步骤、代码示例与排查清单,帮助开发者彻底解决这一常见问题。
STM32 HAL库中__weak函数被覆盖后中断服务程序不执行的排查路径
嵌入式 · 👁 9 阅读
在STM32开发中,使用HAL库时经常遇到中断服务程序不执行的问题,尤其是当用户覆盖了__weak函数后。本文深入分析__weak机制、中断向量表与回调函数的关系,提供从现象到根因的完整排查路径,涵盖启动文件分析、链接脚本检查、调试技巧,并给出可复现的代码示例与避坑指南,帮助开发者快速定位并解决此类疑难问题。
STM32 HAL库中HAL_Delay在中断上下文失效的根因与替代延时方案
嵌入式 · 👁 9 阅读
本文深入剖析STM32 HAL库中HAL_Delay在中断上下文中失效的根本原因,指出其依赖SysTick中断与轮询计数标志的机制在中断嵌套时导致死锁或延时不准。文章提供三种替代延时方案:基于DWT周期计数器的忙等待、硬件定时器单次触发延时以及中断安全的非阻塞状态机延时,并给出完整代码示例与配置步骤,最后总结关键注意事项,帮助开发者在中断服务程序中实现精准可靠的延时。
FreeRTOS中vTaskDelay与vTaskDelayUntil混用导致周期任务漂移的排查实录
嵌入式 · 👁 9 阅读
本文记录了一次嵌入式项目中FreeRTOS周期任务出现时间漂移的排查过程。通过逻辑分析仪抓取波形,发现任务周期逐渐偏移,最终定位为vTaskDelay与vTaskDelayUntil混用所致。文章详细剖析两者原理差异,给出正确配置步骤与完整代码示例,并总结避免周期漂移的注意事项,适合有一定FreeRTOS基础的开发者参考。
FreeRTOS周期性任务:vTaskDelay与vTaskDelayUntil的相位漂移实测对比
嵌入式 · 👁 9 阅读
在FreeRTOS中实现周期性任务时,vTaskDelay与vTaskDelayUntil的选择直接影响任务的时间精度。本文从调度原理出发,分析两者产生相位漂移的根本原因,并基于STM32F407给出可复现的实测代码与数据,对比100ms周期下运行1000次的累计误差,最后总结选型建议与工程注意事项,帮助开发者避开周期性任务的时间陷阱。
FreeRTOS中vTaskDelay与软件定时器混用时优先级反转的隐蔽触发场景
嵌入式 · 👁 6 阅读
本文揭示FreeRTOS中vTaskDelay与软件定时器混用导致的隐蔽优先级反转:定时器服务任务与高优先级任务共享队列时,低优先级任务通过vTaskDelay让出CPU反而延长高优先级任务的阻塞时间。文章剖析Timer Queue与Daemon Task交互原理,给出可复现代码、配置步骤与规避策略,帮助开发者在嵌入式项目中定位此类非典型反转。
从一次HardFault定位到栈溢出:FreeRTOS任务栈水位检测与溢出钩子的实战配置
嵌入式 · 👁 5 阅读
一次偶发的HardFault往往源于不起眼的任务栈溢出。本文从真实调试现场出发,讲解Cortex-M异常现场分析与FreeRTOS栈溢出检测原理,手把手配置configCHECK_FOR_STACK_OVERFLOW、vApplicationStackOverflowHook与uxTaskGetStackHighWaterMark,并给出栈水位监控与栈大小估算的完整代码,帮助你在产品上线前把栈溢出隐患消灭在萌芽状态。
DMA+空闲中断实现STM32串口不定长接收:帧尾超时判定的三种策略对比
嵌入式 · 👁 7 阅读
串口不定长接收是嵌入式开发中的常见需求,DMA+空闲中断方案能高效处理数据帧。但空闲中断触发时机受波特率、数据量影响,帧尾超时判定策略直接决定通信可靠性。本文深入剖析三种主流策略:纯空闲中断、定时器辅助超时、DMA传输完成+空闲中断,从原理、配置步骤到完整代码逐一对比,并给出选型建议与避坑指南,助你构建稳定的串口通信框架。
用DWT周期计数器在Cortex-M上做微秒级函数耗时统计的实操方法
嵌入式 · 👁 24 阅读
在嵌入式开发中,精确测量函数执行时间对性能优化至关重要。本文介绍如何利用Cortex-M内核自带的DWT周期计数器,实现纳秒级分辨率的耗时统计。内容涵盖DWT工作原理、寄存器配置、完整代码实现及注意事项,帮助开发者快速掌握这一高效调试技巧,无需额外硬件即可精准定位性能瓶颈。
FreeRTOS任务通知替代二值信号量:内存与性能实测对比
嵌入式 · 👁 27 阅读
在FreeRTOS中,二值信号量常用于任务同步,但任务通知作为更轻量的替代方案,能显著节省内存并提升性能。本文深入分析任务通知与二值信号量的原理差异,通过STM32实测对比内存占用与上下文切换时间,并提供完整的配置步骤与代码示例,最后总结使用注意事项,帮助开发者在资源受限的嵌入式系统中做出最优选择。
ESP32双核任务分配实战:用xTaskCreatePinnedToCore隔离Wi-Fi协议栈与业务逻辑,实测延迟对比
嵌入式 · 👁 26 阅读
ESP32双核常被当作单核使用,导致Wi-Fi协议栈与业务逻辑争抢CPU,引发延迟抖动。本文深入讲解FreeRTOS双核调度原理,演示如何用xTaskCreatePinnedToCore将Wi-Fi任务固定到Core 0、业务逻辑固定到Core 1,并给出完整代码与实测延迟数据。实验表明,隔离后业务任务延迟降低约60%,抖动显著减小。适合有一定FreeRTOS基础的嵌入式开发者。
基于Cortex-M内核的HardFault现场还原:从栈帧解析到精确故障指令定位
嵌入式 · 👁 24 阅读
HardFault是Cortex-M开发中最棘手的异常之一,往往导致系统死机且难以定位。本文深入剖析Cortex-M内核的异常压栈机制,手把手教你通过解析栈帧、读取SCB寄存器,精确还原故障现场并定位到触发异常的指令地址。包含完整可移植的C代码实现与常见陷阱分析,助你彻底告别“盲调”HardFault。
‹
1
2
...
173
›