📖 技术文库

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 项目 实战 嵌入式 控制 嵌入式 蓝牙 嵌入式 传感器 嵌入式
STM32H7 的 MDMA 与 DMA2D 协同实现双缓冲图形加速的配置要点
嵌入式 · 👁 2 阅读
在 STM32H7 高性能系列中,MDMA 与 DMA2D 是图形加速的两大利器。DMA2D 专为像素搬运与格式转换设计,而 MDMA 则擅长内存到内存的大块数据搬移。本文深入剖析两者协同工作的原理,重点讲解双缓冲机制下的配置要点,包括时钟域同步、描述符链、中断处理及内存对齐等关键细节,并给出完整的初始化与启动代码示例,帮助开发者避开常见陷阱,实现流畅的图形刷新。
ESP32 多核架构下 FreeRTOS 任务优先级反转的实战分析与解决
嵌入式 · 👁 3 阅读
在 ESP32 双核 FreeRTOS 系统中,任务优先级反转是导致实时性恶化的隐形杀手。本文深入剖析多核环境下的优先级反转原理,通过一个共享资源竞争的实际案例,展示如何用互斥量、优先级继承和核间同步机制彻底解决该问题,并提供可复用的代码模板与调试技巧。
利用 ARM Cortex-M DWT 计数器实现微秒级精确延时,且不阻塞中断
嵌入式 · 👁 2 阅读
在嵌入式开发中,精确延时是常见需求,但传统的循环延时(如 DWT 或 SysTick 查询)会阻塞 CPU,导致中断响应延迟。本文深入讲解如何利用 ARM Cortex-M 内核的 Data Watchpoint and Trace (DWT) 单元中的 CYCCNT 计数器,实现微秒级精确延时,同时通过巧妙设计避免阻塞中断,提升系统实时性。文章涵盖原理、寄存器配置、代码实现及注意事项,适合有经验的开发者直接落地。
STM32F4 使用 SDRAM 作为显存时 MPU 配置不当导致的性能骤降与花屏排查
嵌入式 · 👁 2 阅读
在 STM32F4 系列驱动 LCD 时,将 SDRAM 作为显存可大幅提升帧率,但若 MPU(内存保护单元)配置不当,轻则性能骤降,重则花屏闪烁。本文从 MPU 原理出发,剖析 SDRAM 区域缓存策略对读写性能的影响,给出标准配置步骤与完整代码示例,并总结常见坑点,助你快速定位问题。
ESP32 BLE功耗实测调优:广播间隔与连接参数的深度优化指南
嵌入式 · 👁 4 阅读
在物联网设备中,功耗是决定续航的关键。ESP32作为主流低功耗蓝牙芯片,其广播间隔与连接参数直接影响电流消耗。本文通过实测数据,深入分析不同参数配置对功耗的影响,并给出可落地的调优策略,帮助开发者在不牺牲性能的前提下最大化电池寿命。
RTOS软件定时器 vs 硬件定时器:PWM输出精度的深度剖析与选型边界
嵌入式 · 👁 2 阅读
在嵌入式开发中,PWM输出精度往往决定系统性能,而RTOS软件定时器与硬件定时器在此场景下表现迥异。本文从原理出发,剖析两者在抖动、分辨率、CPU占用上的本质差异,并结合STM32实例给出配置代码与选型决策树,帮助开发者避开常见陷阱,在实时性与灵活性之间找到最佳平衡点。
ESP32 低功耗模式下 RTC 内存保持与 GPIO 唤醒源的冲突排查清单
嵌入式 · 👁 4 阅读
在 ESP32 深度睡眠(Deep Sleep)中,RTC 内存用于保存关键数据,而 GPIO 唤醒源则用于外部触发。然而,两者常因配置不当而冲突,导致数据丢失或无法唤醒。本文从原理出发,梳理一份系统化排查清单,涵盖引脚映射、唤醒电平、RTC 内存访问权限及电源域隔离等核心问题,并附完整代码示例,助你快速定位并解决实际工程中的疑难杂症。
STM32H7 550MHz 下 FDCAN 与经典 CAN 的时序兼容性陷阱及规避策略
嵌入式 · 👁 2 阅读
STM32H7 系列在 550MHz 主频下运行 FDCAN 控制器时,由于内核、总线时钟与 CAN 协议时序的复杂耦合,开发者常遭遇与经典 CAN 外设的兼容性陷阱,如位时序计算偏差、同步段错误配置导致采样点漂移,甚至总线错误。本文深入剖析 FDCAN 在高速时钟下的时序机制,揭示经典 CAN 迁移时的关键差异,并提供基于 CubeMX 的配置步骤、完整代码示例及实战规避策略,帮助嵌入式工程师稳定实现混合 CAN 网络通信。
STM32H7 480MHz 下 FDCAN 与 TSN 以太网时间同步误差实测与补偿策略
嵌入式 · 👁 1 阅读
在工业控制与车载网络中,FDCAN 与 TSN 以太网常共存于同一系统,但两者时钟源独立,时间同步精度直接影响协同控制。本文基于 STM32H7 在 480MHz 主频下,实测 FDCAN 与 TSN 以太网的时间同步误差,分析误差来源(如 PLL 抖动、中断延迟、硬件时间戳精度),并提出软件补偿策略(如线性漂移校正、卡尔曼滤波、同步脉冲触发),提供完整代码示例与配置步骤,帮助开发者将同步误差从微秒级降至亚微秒级。
ESP32 双核环境下 FreeRTOS 任务优先级反转的隐蔽触发条件与 tracealyzer 实测排查
嵌入式 · 👁 1 阅读
在 ESP32 双核 FreeRTOS 系统中,优先级反转往往以隐蔽方式触发,尤其是当任务绑定到不同核心、使用互斥量或队列时,传统排查手段难以定位。本文深入剖析双核环境下的反转机理,揭示三个易被忽视的触发条件,并通过 Tracealyzer 实测案例展示如何精准捕捉和验证问题,帮助开发者掌握系统性排查方法。
Arduino 无 RTOS 协作式调度器:基于状态机的 5 个陷阱与规避
嵌入式 · 👁 1 阅读
在资源受限的 Arduino 平台上,许多开发者选择使用协作式调度器(Cooperative Scheduler)配合状态机(State Machine)来替代 RTOS,以节省 RAM 和避免优先级反转。然而,这种轻量级方案暗藏多个陷阱:阻塞调用、全局变量污染、状态爆炸、时间基准漂移和中断竞争。本文深入剖析这 5 个常见问题,并给出基于 Arduino 的实用规避策略,帮助您构建稳定、可维护的嵌入式系统。
STM32F4 PLL 配置中 VCO 输入频率边界对系统稳定性的隐性影响
嵌入式 · 👁 1 阅读
在 STM32F4 系列开发中,PLL 配置常被视为“照抄参考手册”的步骤,但 VCO 输入频率(PLLM 分频后的频率)的边界条件往往被忽视。本文深入剖析 VCO 输入频率范围(1-2 MHz)对系统稳定性的隐性影响,包括相位噪声、锁定时间、电磁干扰及极端温度下的失效风险,并结合实际代码示例和调试经验,帮助开发者规避“看似正常却偶发死机”的陷阱。