📖 技术文库

STM32 / Arduino / RTOS / 嵌入式 知识文章
展开全部分类 (54)
STM32 看门狗防死机:IWDG+WWDG 双保险设计实战指南
STM32 看门狗 · 👁 32 阅读
在嵌入式系统中,程序跑飞或死锁是稳定性的大敌。STM32 提供了独立看门狗(IWDG)和窗口看门狗(WWDG)两种硬件保护机制,但单一使用往往存在盲区。本文深入剖析 IWDG 与 WWDG 的工作原理与差异,并给出双看门狗协同设计的完整方案,包括配置步骤、喂狗策略、完整代码示例及工程注意事项,帮助开发者构建更可靠的防死机防线。
STM32 定时器级联:实现长时间定时与脉冲计数
STM32 定时器 · 👁 35 阅读
STM32定时器资源丰富,但单个16位定时器在长时间定时或高频脉冲计数时往往力不从心。本文深入讲解定时器级联原理,通过主从模式将两个定时器串联,实现超过65535个时钟周期的长时间定时,以及利用外部脉冲触发级联计数。文章提供基于STM32F1的完整配置代码(HAL库),涵盖原理、步骤、代码与注意事项,帮助开发者轻松突破定时器位数限制。
STM32 双缓冲 DMA:高速外设数据传输优化实战指南
STM32 DMA · 👁 62 阅读
在高速数据采集或实时控制系统中,单缓冲 DMA 常因 CPU 介入搬运数据而引入延迟和丢包风险。STM32 的双缓冲 DMA(Double-Buffer DMA)通过硬件自动切换两个内存缓冲区,实现数据无缝传输,显著降低 CPU 负载并提升吞吐量。本文深入剖析双缓冲 DMA 的工作原理、配置方法,并给出基于 STM32CubeMX 和 HAL 库的完整代码示例,帮助开发者快速掌握这一关键优化技术。
STM32 温度采集实战:片上传感器与外部 NTC 分压电路深度解析
STM32 传感器 · 👁 36 阅读
温度采集是嵌入式系统中最常见的任务之一。本文面向有一定基础的开发者,深入剖析 STM32 的片上温度传感器原理与校准方法,并详细讲解外部 NTC 热敏电阻分压电路的设计、计算与 ADC 采样实现。通过对比两种方案,帮助你在实际项目中做出合理选型,并附上完整的 HAL 库代码示例,助你快速落地。
STM32 自定义 Bootloader:串口 IAP 升级从原理到实践
STM32 Bootloader · 👁 38 阅读
在嵌入式产品开发中,固件升级能力至关重要。本文深入讲解基于STM32的串口IAP(In-Application Programming)自定义Bootloader设计,涵盖Flash分区、跳转逻辑、串口通信协议及CRC校验等核心要点,并给出完整可运行的代码示例,帮助开发者快速实现稳定可靠的远程固件升级方案。
STM32 Flash 扇区擦写与磨损均衡详解:从底层原理到工程实践
STM32 存储 · 👁 38 阅读
STM32 内置 Flash 是嵌入式系统中常用的非易失性存储,但其擦写寿命有限且操作有严格约束。本文深入剖析 STM32 Flash 的扇区结构、擦写时序与硬件限制,重点讲解磨损均衡算法的设计思路与实现方法,并给出基于标准库的完整代码示例,帮助开发者安全、高效地管理片上存储,延长设备使用寿命。
STM32 外部中断 EXTI 与睡眠唤醒综合实战:从按键到低功耗的完整链路
STM32 中断 · 👁 70 阅读
本文深入剖析 STM32 外部中断(EXTI)的硬件机制与配置要点,并结合低功耗模式(睡眠/停止)实现按键唤醒的综合实战。通过原理讲解、寄存器级配置、HAL 库代码示例,帮助开发者掌握中断触发条件、中断服务函数编写、以及如何在睡眠模式下利用 EXTI 唤醒 MCU,从而构建高效、低功耗的嵌入式系统。
STM32 串口 DMA 空闲中断接收不定长数据:从原理到深度优化实践
STM32 串口 · 👁 28 阅读
在嵌入式开发中,串口接收不定长数据是高频需求。传统逐字节中断接收效率低且易丢包,而DMA+空闲中断方案能实现高效、零拷贝接收。本文深入剖析STM32的串口空闲中断与DMA协同工作原理,给出标准配置流程,并针对多字节边界、缓存溢出、低功耗等场景提出深度优化策略,附完整可移植代码,助你彻底掌握这一关键技能。
STM32 定时器输出比较与 PWM 死区设置(HAL库)深度解析
STM32 PWM · 👁 38 阅读
在电机控制、电源变换等应用中,PWM 死区是防止桥臂直通的关键。本文基于 STM32 HAL 库,深入讲解定时器输出比较模式与 PWM 死区设置的原理,通过 CubeMX 配置和代码示例,手把手教你生成带死区的互补 PWM 信号,并剖析常见陷阱与调试技巧,助你快速掌握高级定时器的核心用法。
STM32 双核协同:Cortex-M4 与 Cortex-M0 的通信机制深度解析
STM32 架构 · 👁 38 阅读
STM32H7 系列等双核 MCU 将 Cortex-M4 与 Cortex-M0+ 集成于一身,为高性能与低功耗的兼顾提供了新思路。本文深入剖析双核架构下的通信机制,涵盖硬件邮箱、共享内存、中断同步等核心原理,并通过完整代码示例演示如何配置与使用 IPC(核间通信)机制,帮助开发者掌握双核协同开发的关键技术,提升系统实时性与能效。
单片机 EEPROM 数据管理:掉电保存与磨损均衡实战指南
嵌入式 存储 · 👁 43 阅读
在嵌入式系统中,EEPROM 常用于保存配置参数、校准数据或运行状态,但掉电保存的可靠性与擦写寿命限制常被忽视。本文深入剖析 EEPROM 的物理特性,讲解掉电检测与数据缓冲策略,重点介绍磨损均衡算法(如轮询写入与日志结构)的实现原理,并给出基于 STM32 的完整代码示例,帮助开发者构建高可靠、长寿命的存储方案。
STM32 SPI 驱动 OLED(SSD1306)屏幕:从原理到实战
STM32 显示 · 👁 59 阅读
本文深入讲解如何利用 STM32 的硬件 SPI 外设驱动 SSD1306 控制的 OLED 屏幕。内容涵盖 SPI 通信协议基础、SSD1306 初始化序列、显存管理策略以及完整的代码实现。通过本教程,你将掌握高效驱动 OLED 的方法,并理解底层时序与命令交互,为后续 GUI 开发打下坚实基础。