📖 技术文库

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