📖 技术文库

STM32 / Arduino / RTOS / 嵌入式 知识文章
展开全部分类 (54)
STM32 外部中断 EXTI 配置实战:边沿触发与中断优先级详解
STM32 中断 · 👁 78 阅读
外部中断(EXTI)是 STM32 实现 GPIO 快速响应的核心机制,广泛应用于按键检测、编码器信号、报警输入等场景。本文抛开 HAL 库的封装,从寄存器与 Cortex-M3 NVIC 层面剖析 EXTI 的边沿触发选择、中断/事件区分以及优先级分组策略,并给出基于标准外设库的完整配置示例,帮助你彻底理清外部中断的配置脉络,写出高效可靠的响应代码。
STM32 SPI 通信详解:主从模式、时序与 Flash 读写实战
STM32 SPI · 👁 71 阅读
SPI 是嵌入式系统中常用的高速同步串行接口。本文将深入解析 SPI 协议的主从模式与四种时序配置,结合 STM32 HAL 库给出完整配置流程,并以 W25Q64 Flash 为例演示如何通过 SPI 进行设备 ID 读取、数据写入与读取,帮助开发者快速掌握 STM32 SPI 通信的实战技能。
单片机按键消抖:硬件与软件方案对比与嵌入式IO最佳实践
嵌入式 IO · 👁 86 阅读
按键是嵌入式系统最基础的输入设备,但机械触点的抖动会导致IO电平在数毫秒内多次跳变,轻则误触发,重则系统逻辑混乱。本文从抖动产生的物理机理出发,深入对比RC硬件消抖、施密特触发器、软件延时消抖与状态机消抖的优缺点,并结合实际代码给出不同场景下的选型建议,帮助嵌入式开发者构建稳定可靠的按键输入方案。
STM32 PWM 输出全解析:从舵机控制到电机调速与LED调光
STM32 PWM · 👁 81 阅读
PWM(脉冲宽度调制)是嵌入式系统中最常用的输出手段之一,通过调节占空比和频率,可以精确控制舵机角度、电机转速和LED亮度。本文以STM32定时器为核心,深入讲解PWM的工作原理、定时器配置方法,并给出基于HAL库和标准库的完整代码示例,帮助开发者快速掌握PWM应用的核心技巧。
FreeRTOS 在 STM32 上的移植与任务调度机制详解
RTOS RTOS · 👁 102 阅读
本文以STM32F103为例,系统讲解FreeRTOS的移植流程与任务调度原理。从下载源码、配置内核、修改中断到编写多任务Demo,逐步演示如何让RTOS在Cortex-M3上高效运行,并深入剖析基于优先级抢占式调度与时间片轮转的协同机制,帮助嵌入式开发者快速上手FreeRTOS。
编码器与 STM32:正交解码测速实战指南
STM32 编码器 · 👁 86 阅读
增量式编码器通过正交信号精确反馈电机位置与速度,而 STM32 的定时器正交解码器(Encoder Interface)可直接对 AB 相脉冲进行硬件计数,极大降低 CPU 负载。本文从正交信号原理出发,讲解 STM32 定时器编码器模式的配置流程,并给出完整的 CubeMX 初始化代码与测速换算方法,帮助开发者快速实现高精度测速。
STM32 低功耗模式深度解析:睡眠、停止与待机的原理与实战
STM32 低功耗 · 👁 91 阅读
在电池供电的物联网设备中,功耗控制是产品成败的关键。STM32 提供了多种低功耗模式,其中睡眠、停止和待机是最常用的三种。本文将从内核时钟、电压调节器和唤醒源三个维度剖析这三种模式的本质差异,并结合实际代码演示如何通过 HAL 库快速配置和切换,同时给出 PCB 设计与软件层面的避坑指南。
STM32 DMA 传输:原理、配置与串口 DMA 收发实战
STM32 DMA · 👁 93 阅读
DMA(Direct Memory Access)让 STM32 无需 CPU 干预即可在内存与外设间搬运数据,是提高实时性能的关键技术。本文从 DMA 的核心工作流程讲起,深入解析 STM32 的 DMA 架构与传输模式,并给出基于 HAL 库的串口 DMA 收发完整配置与示例代码,帮助开发者避开常见陷阱,实现高效可靠的数据传输。
I2C 通信详解:STM32 读写 EEPROM 与传感器
STM32 I2C · 👁 89 阅读
I2C 是嵌入式系统中最常用的板级总线之一,仅需两根线即可挂载多个设备。本文从协议帧格式出发,剖析 I2C 时序与地址机制,然后以 STM32 硬件 I2C 外设为例,手把手演示如何初始化、读写 AT24C02 EEPROM 与 SHT30 温湿度传感器,并给出完整的工程级代码。同时分享多字节读写、时钟拉伸、总线死锁等常见坑的排查经验,帮助你避开新手最容易犯的错误。
STM32 内部看门狗(IWDG)与窗口看门狗详解:原理、配置与实战
STM32 看门狗 · 👁 90 阅读
看门狗是嵌入式系统防死机的最后一道防线。STM32 内置独立看门狗(IWDG)和窗口看门狗(WWDG),两者原理、超时特性与使用场景截然不同。本文深入剖析二者的硬件机制、时钟源与喂狗窗口,给出基于 HAL 库的完整配置示例和代码,并总结常见误区和调试技巧,帮助开发者根据系统需求选对看门狗,写出稳定可靠的固件。
Arduino 入门进阶:从寄存器级点灯到串口通信的工程化实践
Arduino 入门 · 👁 120 阅读
Arduino 常被视为玩具,但对有经验的嵌入式开发者而言,它其实是一套高效的快速原型工具。本文摒弃图形化编程,直接基于 AVR 寄存器操作点灯,再过渡到标准库串口通信,帮助工程师理解 Arduino 底层机制与 HAL 封装差异,并给出工程化配置建议与完整可运行代码,助你从“会用”走向“懂原理”。
STM32 ADC 多通道采样:配置、校准与滤波的实用指南
STM32 ADC · 👁 80 阅读
本文深入讲解STM32 ADC多通道采样的完整流程,包括扫描模式与注入模式的选择、采样时间优化、硬件过采样与软件滤波的权衡,以及ADC校准(尤其是不连续采样下的偏移误差校准)。通过一个基于HAL库的代码示例,演示如何配置多通道规则组连续采样,并给出简单有效的滑动平均滤波实现,帮助开发者解决实际项目中多通道数据采集的精度与稳定性问题。