蘑
菇
助手
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
项目 实战
嵌入式 控制
嵌入式 蓝牙
嵌入式 传感器
嵌入式
ESP32 双核 FreeRTOS 下用 TaskNotify 替代 Semaphore,任务切换开销直降 30%
嵌入式 · 👁 2 阅读
在 ESP32 双核 FreeRTOS 应用中,任务间同步常使用 Semaphore,但其内核调用和队列操作会引入不小的开销。本文深入剖析 Semaphore 与 TaskNotify 的底层差异,并给出在双核场景下用 TaskNotify 替代 Semaphore 的完整配置步骤与代码示例,实测任务切换开销可降低 30% 以上。适合有一定 FreeRTOS 基础的开发者,助你榨干 ESP32 的性能。
Arduino 非阻塞状态机中 volatile 误用的致命陷阱:从崩溃到数据撕裂的深度剖析
嵌入式 · 👁 2 阅读
在 Arduino 上实现非阻塞式多任务状态机时,volatile 关键字常被误用为“万能良药”,导致隐性数据竞争、状态丢失甚至硬件故障。本文深入剖析 volatile 在中断与主循环间的真实语义,揭示其无法保证原子性的本质,并通过三个典型场景(标志位撕裂、共享变量覆盖、寄存器回写失效)展示错误用法。提供基于 AVR 原子操作、临界区保护及任务队列的正确架构,附完整代码示例与调试技巧,助你避开嵌入式开发的经典深坑。
STM32CubeMX 生成代码中 HAL_Delay 被 SysTick 抢占导致时序漂移的排查与替代方案
嵌入式 · 👁 1 阅读
在 STM32 嵌入式开发中,HAL_Delay 是常用的毫秒级延时函数,但许多开发者发现其实际延时并不精确,甚至出现明显漂移。本文深入剖析 HAL_Delay 依赖 SysTick 中断实现的原理,指出当 SysTick 被更高优先级中断抢占时,延时计数会丢失,导致时序漂移。文章提供系统性的排查方法,并给出基于 TIM 定时器、DWT 或裸机忙等待的三种替代方案,附完整代码示例,帮助开发者彻底解决延时精度问题。
ESP32 双核环境下 FreeRTOS 任务优先级反转的隐蔽触发场景与 Tracealyzer 排查方法
嵌入式 · 👁 1 阅读
在 ESP32 双核 FreeRTOS 系统中,优先级反转往往不局限于经典互斥量场景,而是可能由双核调度、中断嵌套、任务通知等机制隐蔽触发,导致系统响应异常却难以定位。本文深入剖析双核环境下的三种隐蔽反转场景,并演示如何利用 Tracealyzer 进行可视化排查,帮助开发者快速定位并解决这类棘手问题。
STM32 双Bank切换实现OTA零停机:基于Flash双区映射的实战踩坑记录
嵌入式 · 👁 1 阅读
在工业物联网设备中,OTA升级往往面临停机风险。本文深入探讨STM32双Bank切换技术,通过Flash双区映射实现无缝升级,避免系统重启。文章从原理剖析到寄存器配置,再到完整代码示例,并分享实战中的关键踩坑点,帮助开发者规避常见陷阱,确保升级可靠性。
ESP32 双核环境下 FreeRTOS 任务优先级反转的实测与规避策略:结合互斥量与调度锁
嵌入式 · 👁 2 阅读
在 ESP32 双核 FreeRTOS 系统中,任务优先级反转不仅受经典互斥量影响,还因双核并发调度而加剧。本文通过实测展示优先级反转现象,深入剖析其成因,并对比互斥量与调度锁(vTaskSuspendAll)在双核下的适用性,给出规避策略与完整代码示例,帮助开发者构建高实时性嵌入式应用。
STM32G4 CORDIC硬件加速器在电机控制中的实战配置与精度校准
嵌入式 · 👁 1 阅读
STM32G4系列内置CORDIC协处理器,可硬件加速三角函数、矢量旋转等运算,显著提升电机控制环路性能。本文深入解析CORDIC原理,手把手演示在STM32G4上的寄存器级配置流程,并给出基于FPU的软件校准方法,确保计算精度。通过完整代码示例,展示如何将CORDIC集成到FOC(磁场定向控制)中,实现高速、高精度的Park变换与反正切计算。
STM32F4 无外部晶振的可靠唤醒:LSE 停振后利用 RTC 备份域寄存器的实战指南
嵌入式 · 👁 1 阅读
在 STM32F4 系列开发中,LSE(低速外部晶振)常被用于 RTC 实时时钟,但晶振起振慢、易受干扰,一旦停振可能导致系统唤醒失败。本文深入探讨如何利用 RTC 备份域寄存器(BKP)在 LSE 失效时实现无外部晶振的可靠唤醒,涵盖原理、配置步骤、完整代码及注意事项,帮助开发者构建高鲁棒性的低功耗系统。
RTOS 优先级反转的硬件级缓解:基于 Cortex-M 内核的互斥访问指令优化
嵌入式 · 👁 2 阅读
在实时嵌入式系统中,优先级反转是导致任务调度延迟的经典问题。传统软件互斥锁(如信号量)虽能解决资源竞争,但会引入不可控的阻塞时间。本文深入探讨基于 Cortex-M 内核的硬件互斥访问指令(LDREX/STREX)与优先级继承协议的结合,通过原子操作和硬件仲裁,实现零中断延迟的临界区保护,显著降低优先级反转风险。文章提供完整代码示例和配置步骤,帮助开发者掌握这一高级优化技术。
基于 RTOS 信号量实现多核(AMP)架构下外设互斥访问的陷阱与修正
嵌入式 · 👁 1 阅读
在非对称多处理(AMP)架构中,多个内核共享同一外设时,仅依赖 RTOS 信号量进行互斥往往隐藏着致命陷阱:信号量状态不一致、缓存一致性问题、以及中断上下文中的死锁。本文深入剖析这些陷阱的根源,并给出基于硬件自旋锁、内存屏障及核间中断(IPI)的修正方案,附完整可运行的 STM32H7 双核示例代码,帮助开发者构建真正安全的外设访问机制。
STM32F4 168MHz 下多路 ADC DMA 连续采样:缓冲区溢出与数据错位的规避策略
嵌入式 · 👁 1 阅读
在 STM32F4 系列以 168MHz 主频运行时,使用 DMA 进行多路 ADC 连续采样是高性能数据采集的常见方案,但缓冲区溢出与数据错位问题常导致采样数据失真。本文深入剖析 DMA 传输机制、双缓冲区设计与数据对齐策略,结合代码示例,提供一套完整的规避方案,帮助开发者稳定实现多通道高精度采样。
ESP32 双核环境下 FreeRTOS 任务通知替代信号量:上下文切换开销的实测对比与优化实践
嵌入式 · 👁 1 阅读
在ESP32双核FreeRTOS应用中,任务间同步常使用信号量,但其内核调用和队列操作会引入显著的上下文切换开销。本文深入剖析任务通知(Task Notification)的轻量级机制,通过实际代码和性能测量,对比信号量与任务通知在双核环境下的延迟和CPU占用率,展示如何用任务通知将同步开销降低30%-50%,并给出配置步骤、完整示例及注意事项,助力开发者打造高效实时系统。
‹
1
2
...
59
60
61
62
63
64
65
...
127
128
›