STM32F系列单片机
文章平均质量分 78
本专栏专为STM32F103开发者打造,拒绝“调库侠”,带你深入理解嵌入式底层逻辑。内容从寄存器操作到HAL库开发,系统讲解GPIO、中断、定时器、ADC及SPI/I2C/UART等核心通信协议。结合DHT11、Flash等实战案例,剖析Cortex-M内核机制。
硅基造物主
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
18.从 IP 到 MQTT:STM32 用 AT 指令驱动 ESP-12F 上云的完整链路(含全套实战代码 + 踩坑清单)
本文基于STM32F411与ESP-12F实现MQTT上云,系统复盘网络基础、MQTT模型与AT指令交互三层次逻辑。完整提供mqtt.h/c及main.c代码,涵盖WiFi连接、MQTT配置、发布订阅全流程,并附光照ADC数据上传的闭环改造。重点剖析IP地址、NAT机制、回显关闭、时序超时等10个易错点,强调“分层定位、时序为王、先通后优”的实战原则,助力开发者快速跑通物联网上云链路。原创 2026-10-14 20:40:48 · 246 阅读 · 0 评论 -
17.STM32 ADC:从模数转换原理到光敏电阻电压采集实战
本文系统梳理了ADC原理与工程实践:从采样-保持-量化-编码的转换流程,到采样率、分辨率、ENOB等关键指标的理解,对比SAR、Σ-Δ等架构适用场景。结合STM32F411RET6开发板,通过光敏电阻电压采集项目,实操验证了HAL库ADC接口使用,并强调参考电压稳定性、信号链设计对实际精度的决定性影响。核心结论:ADC性能由整条信号链决定,而非仅看芯片标称位数。理论与实践贯通,方能真正掌握模数转换。原创 2026-10-14 19:42:28 · 209 阅读 · 0 评论 -
16. 深入浅出 SPI 通信协议:从移位寄存器到 W25Q256 Flash 读写实战
define SPI_FLASH_PageSize 256 // 一页 256 字节#define W25Q256_WriteEnable 0x06 // 写使能#define W25Q256_WriteDisable 0x04 // 写屏蔽#define W25Q256_ReadStatusReg1 0x05 // 读状态寄存器1#define W25Q256_ReadData 0x13 // 4字节地址模式 读数据。原创 2026-10-12 19:22:25 · 389 阅读 · 0 评论 -
15.ENS160传感器使用秘籍:一文看懂多气体检测核心技巧
ENS160是一款基于MOX技术的数字多气体传感器,集成TrueVOC®算法,可直接输出TVOC(ppb)、eCO2(ppm)和AQI(1-5级)等高级空气质量数据,大幅降低主控算力负担。其采用双电源设计(VDD 1.8V核心供电,VDDIO 1.71–3.6V通信供电),实现电平兼容,避免通信失败。硬件上需注意VDD严禁接3.3V以防烧毁。通过STM32 HAL库可轻松实现I2C通信,初始化后进入标准工作模式,读取状态寄存器判断新数据,再获取各参数值,支持低功耗深度睡眠模式切换,适用于智能环境监测系统。原创 2026-10-02 18:56:13 · 232 阅读 · 0 评论 -
14.深入浅出 I2C 通信协议:从电平信号到完整驱动实现
本文系统讲解I2C通信协议原理与实战,涵盖电平与差分信号区别、上拉电阻作用、起始/终止信号、时序与应答机制。以STM32为例,从零实现软件I2C驱动,完成微秒延时、读写函数封装,并对比硬件I2C的HAL库用法。最后结合ENS160传感器项目,演示I2C驱动在真实场景中的应用,帮助读者掌握从理论到实践的完整开发链路。原创 2026-10-02 18:51:52 · 417 阅读 · 0 评论 -
13. STM32 定时器与 PWM 实战指南
定义:Cortex-M 系列内核集成的 24 位递减计数器(异常编号 15)。作用裸机开发:用于产生精准延时。操作系统:作为时基单元(Time Base),维持系统心跳(如 FreeRTOS、uCOS)。时钟源内部时钟:FCLK(自由运行时钟,通常等于系统主频 HCLK)。外部时钟:STCLK(通常为 HCLK 的 8 分频)。原创 2026-09-28 17:24:16 · 184 阅读 · 0 评论 -
8.STM32 串口通信程序编写详解:寄存器与 HAL 库实战
printf 为格式化输出函数默认输出到终端需求:使用 printf 输出数据到串口__weak。原创 2026-09-01 09:26:32 · 209 阅读 · 0 评论 -
9.STM32 中断系统详解:从基础概念到 EXTI 实战
中断(Interrupt)是指 CPU 在正常执行程序的过程中,由于内部或外部事件的触发,暂时中止当前程序的执行,转而去处理该事件对应的服务程序,处理完毕后再回到原程序被打断的位置继续执行的过程。类比理解:你正在看书(主程序),电话铃响了(中断触发),你在书页上夹个书签(保存现场),去接电话(中断服务函数),接完电话后回到书签位置继续看书(恢复现场、返回主程序)。原创 2026-09-01 09:26:43 · 528 阅读 · 0 评论 -
12.STM32 定时器(TIM)从原理到实战:四种核心工作模式详解
使能时钟配置 GPIO(PWM/捕获时需要):复用推挽/输入模式初始化定时器:设置 PSC、ARR、计数模式配置通道:PWM 模式 / 输入捕获模式 / 编码器模式启动等编写中断回调:处理 $T_{溢出} = \frac{(PSC+1) \times (ARR+1)}{f_{TIM}}$ 或捕获事件本文系统梳理了 STM32 定时器(TIM)从原理到实战的完整知识体系。理解时钟链路:定时器时钟由 APB 总线时钟经预分频推导而来,APB 预分频系数不为 1 时定时器时钟会翻倍,这是所有计算的前提。原创 2026-09-06 21:53:01 · 389 阅读 · 0 评论 -
11.SysTick 详解:从原理到实战,掌握 Cortex-M 系统嘀嗒定时器
SysTick(System Tick,系统嘀嗒定时器)是 ARM Cortex-M 内核中内置的一个简单 24 位向下计数定时器,属于 NVIC(嵌套向量中断控制器)的一部分。它独立于芯片厂商的外设定时器,所有基于 Cortex-M 内核的 MCU(如 STM32、GD32(兆易创新)、NRF52 等)都具备这个外设。24 位递减计数器、可产生固定周期中断、内核级外设(跨芯片通用)、通常用作操作系统时基或精确延时。位名称说明0ENABLE定时器使能位。1 = 使能计数,0 = 关闭1。原创 2026-09-06 20:16:35 · 369 阅读 · 0 评论 -
10.DHT11温湿度传感器详解:原理、时序与程序设计
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接,因此具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准,校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中会调用这些校准系数。原创 2026-09-02 23:45:29 · 512 阅读 · 0 评论 -
7.STM32 串口通信详解:从通信基础到 UART/USART 实战调试
本文介绍通信本质与演变,对比电子通信优势;分类涵盖无线/有线、同步/异步、单工/半双工/全双工、串行/并行。重点讲解STM32常用外设及选型,详解UART/USART协议、电平标准、寄存器与调试技巧,为嵌入式串口开发提供基础指导。原创 2026-08-31 20:55:38 · 186 阅读 · 0 评论 -
6.STM32 GPIO 输入功能与按键消抖实战详解
声明全局变量(用于检测按键抖动次数,在软件调试时便于观察按下次数与实际次数是否相等)本文围绕 STM32 的 GPIO 输入功能,从电平识别、IO 框图、寄存器配置到按键实战,完整梳理了输入开发的核心链路。下面概括关键要点,并补充常见问题与调试建议。原创 2026-08-31 20:44:21 · 212 阅读 · 0 评论 -
5.STM32 HAL库入门实战:从零驱动蜂鸣器(附完整代码)
确保 BEEP 对应 MCU 的引脚置位高电平 -> 确保 NPN 型三极管导通;在蜂鸣器驱动开发过程中,初学者常会遇到蜂鸣器不响、声音异常、编译报错等问题。下面整理了几类高频问题及对应的排查步骤和解决方案。HAL 库优势:硬件抽象层跨系列兼容性最好,可配合 STM32CubeMX 图形化工具自动生成初始化代码,是目前官方推荐的主流开发方式,能显著降低开发门槛、提升开发效率。蜂鸣器驱动流程。原创 2026-08-26 21:44:01 · 159 阅读 · 0 评论 -
4.STM32 驱动 74HC138 译码器点亮 LED:寄存器配置与程序优化实战
所以我们可以使用一些办法简化代码的同时提高程序的可读性;138-A、138-B、138-C对应PA0 PA1 PA4。上述直接对寄存器操作的方法比较晦涩;2.结合真值表来辅助判断LED亮灭。1.分析原理图(3输入8输出)3.通过寄存器配置来点亮LED。原创 2026-08-25 21:30:20 · 169 阅读 · 0 评论 -
3.STM32寄存器点灯实战:从命名规则到GPIO配置全解析
本文为STM32初学者提供了完整的"点亮LED"实战教程。首先详细解析了STM32芯片命名规则,包括产品系列、类型、内核型号等关键信息。然后通过PC2引脚控制LED的实例,讲解了GPIO的8种输入输出模式,重点演示了推挽输出的寄存器配置方法。教程分步骤说明:1)查看原理图确认LED连接引脚;2)使能GPIOC时钟;3)配置CRL寄存器设置输出模式和类型;4)通过ODR寄存器控制输出电平。最后总结了常见问题排查方法,如编译错误、LED不亮等情况的解决方案。本教程采用底层寄存器直接操作方式,原创 2026-08-25 20:37:45 · 660 阅读 · 0 评论 -
2.STM32开发方式全解析:寄存器、HAL库、LL库与STD库怎么选?
STD库(标准库):STM32标准外设库(STD库)是ST官方提供的用于STM32微控制器开发的。提供的官方固件库,包含对GPIO、USART、ADC、定时器等外设的封装函数,方便开发者。汇编 .s 标识型语言:ADD ADDL 可读性:还可以 移植性:差。HAL库:ST主推:兼容性很强 缺点:冗余性很高 资源受限的场景不适合用。Keil MDK-ARM->IDE(集成开发环境):编辑、编译、调试。最早:机器码 1010 可读性:没有 移植性:没有。LL库:面向寄存器的库 速度快 冗余低 使用麻烦些。原创 2026-08-24 22:16:06 · 220 阅读 · 0 评论 -
1.从电平到RISC-V:单片机与嵌入式处理器入门指南
单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM只读存储器ROM、多种I/O口和中断系统、定时器计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。1.ARM是一家公司Acorn时期。原创 2026-08-24 21:59:07 · 340 阅读 · 0 评论
分享