蘑
菇
助手
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 不定长串口接收:DMA 环形缓冲区 + 空闲中断的边界条件深度剖析
嵌入式 · 👁 15 阅读
在嵌入式开发中,串口接收不定长数据是常见需求,但处理不当极易丢帧。本文深入讲解如何利用 DMA 环形缓冲区配合空闲中断,实现高效、可靠的 STM32 不定长串口接收。文章不仅涵盖原理与配置步骤,更重点分析了环形缓冲区读写指针的边界条件、DMA 半传输中断与空闲中断的协同机制,以及常见陷阱的规避方法,助你彻底告别丢帧困扰。
STM32F4 LSE 停振应急手册:备份域寄存器实现无损时钟切换与故障记录
嵌入式 · 👁 6 阅读
在工业与物联网场景中,STM32F4 的 LSE(32.768kHz 低速外部晶振)常因环境干扰或老化而停振,导致 RTC 失准甚至系统挂起。本文深入剖析 LSE 失效检测机制,并演示如何利用 RTC 备份域寄存器(BKP)在中断服务函数中完成时钟源无缝切换(LSE→LSI),同时将故障时间与状态原子化写入备份寄存器,实现掉电不丢失的故障记录。文章包含原理图解、CubeMX 配置步骤、完整 C 代码示例及工程注意事项,助你构建高可靠的时钟管理模块。
AVR 软中断黑科技:用 SREG 保留位在 Arduino 上实现任务切换
嵌入式 · 👁 13 阅读
在 Arduino 上实现多任务通常依赖定时器中断或协作式调度,但 AVR 内核中隐藏着一个未公开的 SREG 位——T 标志(Bit 6),它可以在不占用任何外设资源的情况下,通过软件触发中断级任务切换。本文将深入剖析 T 标志的工作原理,展示如何利用它构建一个轻量级、低延迟的软中断调度器,并给出完整代码示例与注意事项,帮助你在资源受限的 MCU 上实现接近 RTOS 的并发体验。
ESP32-C3 低功耗模式下 RTC 内存保持与快速唤醒的边界条件分析
嵌入式 · 👁 8 阅读
ESP32-C3 作为 RISC-V 架构的低功耗 Wi-Fi/BLE SoC,其深度睡眠模式下的 RTC 内存保持能力是设计低功耗物联网设备的关键。然而,RTC 内存并非无限,且唤醒延迟受多种边界条件制约。本文深入剖析 ESP32-C3 在深度睡眠下 RTC 内存的可用大小、数据保持的电气条件、以及快速唤醒的时序约束,结合寄存器配置与代码示例,帮助开发者规避常见陷阱,实现最优功耗与响应速度的平衡。
ESP32 双核环境下 FreeRTOS 任务优先级反转的实测分析与规避策略
嵌入式 · 👁 8 阅读
在 ESP32 双核 FreeRTOS 系统中,优先级反转是导致实时性失控的隐形杀手。本文通过实测复现经典反转场景,深入剖析双核调度下的特殊表现,并给出互斥量、优先级继承、任务隔离等实用规避策略。文章包含完整代码示例与实验数据,帮助开发者构建高可靠嵌入式系统。
Arduino 软件串口波特率自适应:基于脉冲宽度测量的动态校准法
嵌入式 · 👁 16 阅读
在嵌入式开发中,软件串口(SoftwareSerial)常用于扩展串口数量,但固定波特率配置在时钟漂移或外部晶振不精确时易导致通信失败。本文提出一种基于脉冲宽度测量的动态校准法,通过测量起始位和数据的脉冲宽度,实时计算实际波特率并调整采样点,实现软件串口的自适应通信。文章详细讲解原理、配置步骤、完整代码及注意事项,帮助开发者提升系统鲁棒性。
STM32F4 LSE 停振应急指南:用 HSI 校准 RTC,守住时间精度
嵌入式 · 👁 7 阅读
在 STM32F4 嵌入式系统中,LSE(低速外部晶振)是 RTC 的常规时钟源,但晶振起振慢、易受干扰,一旦停振,RTC 将陷入混乱。本文深入剖析 LSE 失效的检测机制,并给出一种基于 HSI(高速内部振荡器)的 RTC 校准方案,通过分频、补偿和软件同步,在无外部晶振时仍能维持秒级精度。文章包含原理讲解、寄存器配置、完整代码示例及工程注意事项,助你构建高可靠的时钟系统。
UART不定长接收:DMA环形缓冲区下如何精准区分帧尾与噪声干扰
嵌入式 · 👁 11 阅读
在嵌入式开发中,UART不定长接收常借助DMA环形缓冲区实现高效数据流处理,但帧尾与噪声干扰的区分始终是难点。本文深入剖析DMA环形缓冲区的接收机制,对比空闲中断、帧超时和帧长度校验三种策略,并给出基于STM32的完整代码示例,帮助开发者构建鲁棒的通信协议,避免误帧与丢帧。
STM32F4 LSE 停振无感恢复:硬件 RTC 备份域时间戳校准实战指南
嵌入式 · 👁 9 阅读
在工业与物联网场景中,STM32F4 的 LSE 晶振可能因干扰或老化停振,导致 RTC 时间漂移甚至系统挂死。本文深入剖析 LSE 失效的检测机制,并基于硬件 RTC 备份域设计一套无感恢复方案:利用备份寄存器保存关键时间戳,在停振后自动切换 LSI 并校准时间,确保系统时间连续可靠。文章包含原理讲解、CubeMX 配置、完整代码示例及工程注意事项,助你构建高鲁棒性的嵌入式时钟系统。
STM32F4 DMA双缓冲ADC连续采样:缓冲区切换时序与数据丢失深度排查指南
嵌入式 · 👁 13 阅读
在STM32F4系列上使用DMA双缓冲实现ADC连续采样,是高性能数据采集系统的常用方案。然而,许多开发者会遇到缓冲区切换时序错乱、数据丢失或采样数据不连续等棘手问题。本文将从DMA双缓冲的工作原理出发,深入剖析缓冲区切换的硬件时序,并结合实际代码,提供一套系统化的排查方法,帮助您定位并解决数据丢失的根因,确保采集系统稳定可靠。
STM32 双Bank切换实现OTA零停机:基于F4/F7的Flash重映射实战
嵌入式 · 👁 8 阅读
在嵌入式OTA升级中,停机等待是常见痛点。STM32 F4/F7系列的双Bank Flash架构允许在运行中写入非活动Bank,并通过硬件重映射实现瞬时切换,达成零停机升级。本文深入解析双Bank原理、配置步骤,并给出基于HAL库的完整代码示例,助你掌握这一高级技巧。
STM32F4 LSE 停振自救指南:硬件 RTC 备份域自动恢复与时间补偿实战
嵌入式 · 👁 11 阅读
在工业与物联网场景中,STM32F4 的 LSE 晶振常因温漂、干扰或老化而停振,导致 RTC 时间停滞甚至系统紊乱。本文深入剖析 LSE 失效机理,并基于硬件 RTC 备份域特性,给出一种无需外部芯片的自动恢复方案:通过检测 LSERDY 标志与备份寄存器标志位,在停振时切换至 LSI 并记录补偿值,待 LSE 恢复后无缝校准。文章包含完整代码、配置步骤及工程注意事项,助你打造高可靠时钟系统。
‹
1
...
6
7
8
...
136
›