📖 技术文库

STM32 / Arduino / RTOS / 嵌入式 知识文章
展开全部分类 (54)
ESP32 双核环境下原子操作替代临界区:GPIO 翻转实时性深度对比
嵌入式 · 👁 6 阅读
在 ESP32 双核 FreeRTOS 环境中,GPIO 翻转常被用于测试实时性。传统临界区(如 taskENTER_CRITICAL)会屏蔽中断并可能引发核间竞争,而利用 ESP32 的原子位操作(如 GPIO.out_w1ts/w1tc)可避免锁开销。本文从原理、实现到实测数据,对比两种方式在双核并发下的延迟与抖动,并给出适用场景建议。
STM32串口DMA环形缓冲区:半满中断与空闲中断的竞态处理实战
嵌入式 · 👁 4 阅读
在STM32嵌入式开发中,使用DMA环形缓冲区接收不定长串口帧是高效且常见的做法,但半满中断与空闲中断的竞态问题常导致数据错乱或丢失。本文深入剖析这两种中断的触发机制与冲突场景,提供基于状态标志和优先级管理的精准处理方案,并给出完整代码示例,帮助开发者彻底解决这一难题,提升串口通信的可靠性。
STM32 低功耗模式下的 DMA 外设唤醒机制与实测功耗对比
嵌入式 · 👁 4 阅读
在嵌入式设计中,低功耗与实时响应常是矛盾体。STM32 提供了多种低功耗模式,而 DMA 作为高效数据传输引擎,能否在低功耗下唤醒系统?本文将深入剖析 STM32 低功耗模式与 DMA 的交互机制,重点讲解如何利用 DMA 触发外设事件唤醒 MCU,并通过实测数据对比不同模式下的功耗表现,帮助开发者权衡功耗与响应速度,优化嵌入式系统设计。
利用 ARM Cortex-M 内核 DWT 计数器实现微秒级精确延时,替代 SysTick 的实战指南
嵌入式 · 👁 4 阅读
在嵌入式开发中,SysTick 定时器常用于系统节拍和延时,但在某些场景下(如 RTOS 占用、高频中断),SysTick 可能不可用或精度不足。ARM Cortex-M 内核自带的 Data Watchpoint and Trace (DWT) 单元提供了一个免费的 32 位周期计数器,可实现微秒级精确延时,且不占用外设定时器。本文将深入讲解 DWT 的工作原理、配置步骤,并给出完整的可移植代码示例,助你轻松掌握这一高效技巧。
STM32H7 在 400MHz 下 FDCAN 与 TSN 以太网协同的实时调度陷阱与规避
嵌入式 · 👁 4 阅读
STM32H7 以 400MHz 主频和丰富外设成为工业实时控制的首选,但 FDCAN 与 TSN 以太网协同工作时,隐藏的调度陷阱常导致数据丢失或延迟超限。本文深入剖析双核/中断优先级、内存访问冲突、时间同步误差等核心问题,并给出基于 STM32H7 的实用规避策略与代码示例,帮助开发者构建真正确定性的实时系统。
ESP32 低功耗模式下 RTC 内存数据丢失的排查与恢复方法
嵌入式 · 👁 4 阅读
ESP32 在深度睡眠等低功耗模式下,RTC 内存(RTC RAM)用于保存关键数据,但开发者常遇到数据丢失问题。本文深入分析 RTC 内存的硬件特性、电源域切换机制及常见丢失原因,提供系统化排查思路和可靠恢复方案,包括使用 RTC_NOINIT_ATTR 属性、校验和机制及 NVS 备份策略,并给出完整代码示例,帮助开发者彻底解决数据丢失隐患。
ESP32 低功耗蓝牙广播间隔对连接延迟与功耗的量化实测:嵌入式开发者的调优指南
嵌入式 · 👁 4 阅读
在嵌入式物联网开发中,BLE广播间隔是影响功耗与连接延迟的关键参数。本文基于ESP32实测数据,量化分析不同广播间隔(20ms-1000ms)下的峰值电流、平均功耗及连接建立时间,揭示其非线性关系,并给出实际项目中的调优策略与代码示例,帮助开发者平衡实时性与续航。
基于 RT-Thread 的 I2C 总线死锁恢复机制:从硬件 SCL 拉低到软件复位外设的完整排查流程
嵌入式 · 👁 4 阅读
I2C 总线死锁是嵌入式开发中的常见顽疾,尤其在多主设备或长线缆场景下,SCL 被从设备拉低会导致总线永久阻塞。本文基于 RT-Thread 操作系统,深入剖析死锁的硬件根源,并给出从检测 SCL 状态、软件复位外设到恢复总线的完整流程。通过具体代码示例和配置步骤,帮助开发者快速定位问题并实现稳健的恢复机制,提升系统的鲁棒性。
STM32H7 400MHz 下 FDCAN 与 TSN 以太网协同实时性抖动实测:从原理到代码
嵌入式 · 👁 4 阅读
在工业实时控制系统中,FDCAN 与 TSN 以太网常需协同工作,但多核抢占、总线仲裁和中断延迟会引入不可预测的抖动。本文基于 STM32H743(400MHz)实测 FDCAN 与 TSN 以太网并发传输时的实时性表现,深入分析抖动来源,并提供一套基于优先级抢占和 DMA 双缓冲的优化方案,附完整代码示例与实测数据,帮助开发者构建高确定性通信链路。
STM32F4 DMA+PWM脉冲输出:实现任意数量脉冲的精确时序控制
嵌入式 · 👁 4 阅读
在步进电机控制、精密运动平台或激光测距等应用中,精确输出指定数量的PWM脉冲是核心需求。传统的中断翻转GPIO方法受CPU负载和中断延迟影响,难以保证高频下的时序精度。本文深入讲解如何利用STM32F4的DMA(直接内存访问)配合定时器PWM模式,实现零CPU干预的任意数量脉冲输出,并给出完整的配置代码与工程实践要点,助你轻松掌握这一高效控制技术。
STM32H7 双 Bank Flash 在线升级:掉电安全策略与实现
嵌入式 · 👁 4 阅读
在 STM32H7 系列 MCU 中,双 Bank Flash 支持无缝固件升级,但擦写期间意外掉电可能导致两个 Bank 均不可用,设备变砖。本文深入分析双 Bank 架构的掉电风险,提出基于标志位与备份机制的防掉电策略,并给出完整的实现代码,帮助开发者构建高可靠的在线升级方案。
STM32F4 STOP模式下DMA外设唤醒机制实测:从原理到功耗曲线深度解析
嵌入式 · 👁 4 阅读
在电池供电的IoT设备中,低功耗与快速响应是永恒的矛盾。STM32F4系列支持STOP模式,但传统外部中断唤醒往往受限于GPIO电平变化。本文深入探讨一种鲜为人知的机制——利用DMA请求作为唤醒源,在STOP模式下通过外设事件(如定时器、ADC)触发DMA传输,实现毫秒级唤醒且无需CPU干预。通过实测功耗曲线,对比不同唤醒源的电流波形,揭示DMA唤醒在待机功耗与响应速度间的平衡点,并提供完整的工程配置代码与调试技巧。