📖 技术文库

STM32 / Arduino / RTOS / 嵌入式 知识文章
展开全部分类 (54)
STM32 RTC实时时钟深入实践:闹钟、日历与低功耗唤醒
STM32 RTC · 👁 226 阅读
STM32内置RTC实时时钟模块不仅提供精确的日历/时间跟踪,还支持可编程闹钟和周期性唤醒定时器,是低功耗应用和定时记录的核心。本文从原理出发,讲解RTC备份域、时钟源和寄存器映射,结合STM32CubeMX与HAL库演示日历配置、闹钟中断实现以及利用RTC唤醒定时器配合STOP模式实现超低功耗极简唤醒,并给出常见坑点与校准技巧。
STM32 USB 从机:CDC 虚拟串口实现详解
STM32 USB · 👁 229 阅读
STM32的USB从机功能可模拟虚拟串口,使MCU与PC通信时无需RS232电平转换,且即插即用。本文从USB CDC类原理入手,详细讲解基于STM32CubeMX和HAL库的CDC虚拟串口配置方法,提供完整的收发代码示例,并总结常见陷阱,帮助嵌入式开发者快速将USB CDC集成到实际项目中。
STM32 CAN 总线通信:收发配置与过滤器设置实战
STM32 CAN · 👁 143 阅读
CAN 总线凭借高可靠性和实时性,成为汽车与工业控制的主流通信方式。STM32 内置的 bxCAN 模块支持标准帧与扩展帧,并提供强大的硬件过滤器。本文从硬件连接、波特率计算到报文收发与过滤器配置,结合完整代码示例,助你快速掌握 STM32 CAN 通信的核心要点,避开常见坑点。
STM32 中断嵌套:优先级分组与抢占/子优先级深度解析
STM32 中断 · 👁 177 阅读
在 STM32 裸机或 RTOS 开发中,中断嵌套是保障实时性的关键,而优先级分组与抢占/子优先级的配置往往令人困惑。本文从 NVIC 内核结构出发,深入讲解抢占优先级与子优先级的区别,以及如何通过 SCB->AIRCR 完成分组,并给出标准库和 HAL 库的完整配置示例与实战注意事项,助你彻底掌握中断嵌套设计。
单片机 CRC 校验原理与实现:Modbus CRC16 详解
嵌入式 协议 · 👁 160 阅读
CRC校验在嵌入式通信中广泛使用,尤其Modbus协议依赖CRC16保证数据完整性。本文从数学原理出发,讲解CRC的除法模型、Modbus CRC16的参数特性,并给出基于查表法的单片机C实现,包括表生成、计算函数与调用示例,帮助开发者快速移植到任意MCU。
ESP32 入门:WiFi、蓝牙与 Arduino 开发实战
ESP32 WiFi · 👁 135 阅读
ESP32 凭借双核处理、内置 WiFi 与蓝牙模块,成为物联网开发的明星芯片。本文面向有嵌入式基础的开发者,详解如何在 Arduino IDE 下配置 ESP32 开发环境,深入解析 WiFi 的 AP/STA 工作模式、经典蓝牙与 BLE 的编程要点,并给出可直接运行的代码示例与工程注意事项,助你快速从零构建无线应用。
Arduino 进阶:定时器中断、PWM 与 PID 控制的深度融合
Arduino 进阶 · 👁 202 阅读
本文面向具备一定基础的嵌入式开发者,深入探讨 Arduino 平台上的定时器中断、硬件 PWM 以及 PID 控制算法的协同设计。通过剖析 AVR 内核定时器工作原理,演示如何配置 CTC 模式产生精确中断,并利用 PWM 输出驱动执行器,最后结合增量式 PID 实现闭环控制。文章提供完整代码示例与工程注意事项,帮助读者摆脱 delay() 阻塞式编程,掌握实时控制系统的核心技巧。
STM32 掉电保存数据:Flash 写入与 EEPROM 模拟
STM32 存储 · 👁 194 阅读
STM32 内置 Flash 不仅用于存储代码,也可在掉电时保存关键数据。本文从 STM32 Flash 硬件特性出发,讲解扇区擦除、编程操作及常见陷阱,并实现一套轻量级的 EEPROM 模拟方案,适用于无外部 EEPROM 的嵌入式系统。通过固件库/LL 库代码示例,帮助开发者安全、高效地管理掉电存储。
STM32 串口接收不定长数据:空闲中断 + DMA 方案详解
STM32 串口 · 👁 128 阅读
在嵌入式开发中,串口接收不定长数据是常见需求,如接收AT指令、传感器数据等。传统中断逐字节接收方式CPU负担重,且难以处理帧边界。本文基于STM32 HAL库,介绍利用空闲中断(IDLE)结合DMA实现高效、可靠的不定长数据接收方案,包括原理剖析、CubeMX配置步骤、完整代码示例及关键注意事项,帮助你彻底掌握这一实用技巧。
STM32 系统时钟树:PLL 倍频与 RCC 配置深度解析
STM32 时钟 · 👁 146 阅读
时钟是 STM32 运行的心脏,而系统时钟树决定了 CPU 与外设的时序基础。本文深入讲解 STM32 时钟树结构、PLL 倍频原理,并通过 RCC 寄存器配置示例,演示如何将 HSE 经 PLL 倍频到 72MHz(以 STM32F1 为例),帮助你绕过时钟配置的常见坑,打造稳定可靠的嵌入式系统。
STM32 外部中断 EXTI 配置实战:边沿触发与中断优先级详解
STM32 中断 · 👁 137 阅读
外部中断(EXTI)是 STM32 实现 GPIO 快速响应的核心机制,广泛应用于按键检测、编码器信号、报警输入等场景。本文抛开 HAL 库的封装,从寄存器与 Cortex-M3 NVIC 层面剖析 EXTI 的边沿触发选择、中断/事件区分以及优先级分组策略,并给出基于标准外设库的完整配置示例,帮助你彻底理清外部中断的配置脉络,写出高效可靠的响应代码。
STM32 SPI 通信详解:主从模式、时序与 Flash 读写实战
STM32 SPI · 👁 137 阅读
SPI 是嵌入式系统中常用的高速同步串行接口。本文将深入解析 SPI 协议的主从模式与四种时序配置,结合 STM32 HAL 库给出完整配置流程,并以 W25Q64 Flash 为例演示如何通过 SPI 进行设备 ID 读取、数据写入与读取,帮助开发者快速掌握 STM32 SPI 通信的实战技能。