蘑
菇
助手
MCU助手 · 单片机工具箱
登录
注册
🏠
首页
🧰
工具
📖
文库
❓
问答
✍️
提问
🏠 首页 /
技术文库
📖 技术文库
STM32 / Arduino / RTOS / 嵌入式 知识文章
全部
STM32
STM32 定时器
STM32 串口
STM32 ADC
Arduino 入门
STM32 看门狗
STM32 I2C
STM32 DMA
STM32 低功耗
STM32 编码器
RTOS RTOS
STM32 PWM
嵌入式 IO
STM32 SPI
STM32 中断
STM32 时钟
STM32 存储
Arduino 进阶
ESP32 WiFi
嵌入式 协议
STM32 CAN
STM32 USB
STM32 RTC
STM32 DAC
STM32 GPIO
STM32 传感器
嵌入式 架构
STM32 Boot
嵌入式 调试
STM32 电机
嵌入式 PCB
ESP32 低功耗
STM32 寄存器
嵌入式 C语言
STM32 架构
STM32 显示
STM32 外设
嵌入式 内存
STM32 工具
STM32 调试
嵌入式 稳定性
嵌入式 电源
STM32 安全
嵌入式 RTOS
嵌入式 存储
STM32 Bootloader
STM32 协议
ESP32 物联网
ESP32 OTA
ESP32 蓝牙
嵌入式 显示
嵌入式 驱动
嵌入式 电机
STM32 入门
RTOS 看门狗
嵌入式 CAN
项目 实战
嵌入式 控制
嵌入式 蓝牙
嵌入式 传感器
嵌入式
展开全部分类 (54)
STM32 HAL库中HAL_Delay在中断上下文里失效的根因与三种安全替代实现
嵌入式 · 👁 77 阅读
HAL_Delay是STM32 HAL库中最常用的延时函数,但许多开发者在中断服务函数中调用它时遭遇系统卡死或延时异常。本文从SysTick中断优先级与HAL_Delay的轮询机制出发,剖析失效根因,并给出基于DWT周期计数器、硬件定时器及状态机非阻塞延时的三种安全替代方案,附完整代码与注意事项。
从寄存器层面拆解ESP32 GPIO中断延迟:为什么你的按键响应总慢半拍
嵌入式 · 👁 71 阅读
按键响应慢半拍?本文深入ESP32 GPIO中断的寄存器级机制,从GPIO状态寄存器、中断使能、中断映射到CPU中断响应,逐层分析延迟来源。通过实测数据揭示默认配置下的隐藏延迟,并提供寄存器级优化代码与配置步骤,帮助你将按键响应从毫秒级压缩到微秒级,适合有一定ESP32开发基础的嵌入式工程师。
STM32 HAL库中__weak函数被用户重写后中断服务程序不执行的链接脚本排查
嵌入式 · 👁 75 阅读
在STM32 HAL库开发中,用户重写__weak中断回调函数后,中断服务程序不执行是常见问题。本文从__weak机制、链接脚本与向量表原理出发,分析重写函数被链接器丢弃或未正确覆盖的原因,给出基于.map文件与链接脚本的排查步骤,并提供完整代码示例与注意事项,帮助开发者快速定位并解决此类链接期问题。
STM32 HAL库中__weak函数被用户重定义后仍调用原函数的链接顺序排查
嵌入式 · 👁 80 阅读
在STM32 HAL库开发中,用户常通过重定义__weak函数来定制外设回调,但有时会发现自己的函数未被调用,反而执行了库中的默认实现。这通常源于链接顺序或符号解析问题。本文深入剖析__weak机制与链接器行为,提供从编译选项到分散加载文件的完整排查步骤,并给出可复现的代码示例与避坑指南,帮助开发者彻底解决这一隐蔽故障。
用DWT周期计数器测量中断响应延迟:从GPIO翻转误差到真实延迟的校准方法
嵌入式 · 👁 69 阅读
中断响应延迟是嵌入式实时系统的关键指标,但用GPIO翻转测量会引入额外误差。本文介绍如何利用Cortex-M内核的DWT周期计数器实现高精度测量,分析GPIO翻转法的误差来源,并给出校准方法与完整代码示例,帮助开发者获得真实的中断延迟数据。
STM32 HAL库中__weak函数被用户重定义后中断向量跳转异常的排查
嵌入式 · 👁 65 阅读
在STM32 HAL库开发中,用户重定义__weak函数(如中断回调)是常见操作,但若处理不当,可能导致中断向量跳转异常,表现为程序跑飞或进入HardFault。本文深入分析__weak机制与中断向量表的关系,结合典型错误场景,给出完整的排查步骤与代码示例,帮助开发者快速定位并解决此类问题。
用DWT周期计数器在Cortex-M上做函数级耗时统计而不占用定时器
嵌入式 · 👁 76 阅读
在嵌入式开发中,函数级耗时统计对性能优化至关重要。传统方法常占用硬件定时器,浪费宝贵外设资源。本文介绍如何利用Cortex-M内核自带的DWT周期计数器,实现高精度、零外设占用的函数耗时测量。文章涵盖DWT原理、配置步骤、完整代码示例及注意事项,帮助开发者快速掌握这一实用技巧,提升调试效率。
STM32 HAL库DMA串口空闲中断接收不定长数据的丢包成因与环形缓冲改造
嵌入式 · 👁 69 阅读
本文深入剖析STM32 HAL库中DMA+串口空闲中断接收不定长数据时丢包的根源,包括中断响应延迟、缓冲区覆盖和HAL库内部处理缺陷,并提出基于环形缓冲区的改造方案。通过原理讲解、配置步骤和完整代码示例,帮助开发者实现稳定可靠的不定长数据接收,适用于嵌入式通信场景。
STM32 HAL库DMA+空闲中断接收串口不定长数据的丢包排查与环形缓冲区改造
嵌入式 · 👁 76 阅读
本文面向有一定STM32开发基础的工程师,深入剖析HAL库下DMA+串口空闲中断接收不定长数据时常见的丢包问题。从空闲中断的触发机制、DMA半满/全满中断的竞争关系讲起,给出丢包复现路径与根因分析,并提供一套基于环形缓冲区的改造方案,包含完整可编译代码、配置步骤与工程注意事项,帮助读者构建高可靠串口接收链路。
STM32 HAL库DMA串口空闲中断接收不定长数据:丢包排查与环形缓冲改造实战
嵌入式 · 👁 81 阅读
本文针对STM32 HAL库下DMA+串口空闲中断接收不定长数据时常见的丢包问题,深入剖析丢包根因(中断响应延迟、缓冲区覆盖、HAL库状态机缺陷),提出基于环形缓冲区的改造方案。通过原理讲解、CubeMX配置步骤、完整代码示例及注意事项,帮助开发者实现高可靠、零丢包的不定长数据接收,适用于嵌入式通信场景。
STM32 HAL库中DMA+空闲中断实现不定长串口收包的隐藏坑与修正
嵌入式 · 👁 106 阅读
本文深入剖析STM32 HAL库下DMA+空闲中断实现不定长串口收包的常见隐藏坑,包括DMA接收长度未及时更新、空闲中断标志清除不彻底、缓冲区覆盖等问题。通过原理讲解、配置步骤和完整代码示例,给出可靠的修正方案,帮助开发者实现稳定高效的不定长数据接收。
STM32 HAL库中HAL_Delay在中断上下文里卡死的成因与替代延时方案
嵌入式 · 👁 64 阅读
本文深入剖析STM32 HAL库中HAL_Delay在中断上下文中导致系统卡死的根本原因,从SysTick中断优先级与阻塞延时的冲突入手,结合代码实例展示问题现象。进而提供三种可靠的替代延时方案:基于DWT周期计数器的微秒级延时、利用硬件定时器的非阻塞延时以及中断安全的忙等待延时,并给出完整实现代码与配置步骤,最后总结注意事项,帮助开发者规避陷阱,提升系统实时性与稳定性。
‹
1
...
14
15
16
...
182
›