📖 技术文库

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