STM32程序串口DMA初始化时进入hardfault_handler()

低级错误导致:

原来自己的工程里串口用的中断方式,

从官方历程复制串口的DMA程序到自己的工程里,

结果一执行到DMA初始化,就hardfault_handler(),反复重启。

初始化函数里调用了HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)这个函数

程序执行到这里就会复位。

原因竟然是没有更新MSP初始化函数。这HAL库挺坑人的,一个串口初始化还分两部分,经常忽略还有一个MSP初始化函数要修改。

串口使用DMA方式时,MSP函数对DMA做了初始化,中断方式的MSP初始化自然不会初始化DMA,所以一调用前面那个函数就hardfault_handler()复位了!!!!

相关推荐
DS小龙哥33 分钟前
基于ESP32-S3设计的智能人脸识别门禁系统
stm32·单片机·嵌入式硬件
一棵树735136 分钟前
信号与通信
单片机·嵌入式硬件
JNX_SEMI1 小时前
Hi6000C可与H6912直接对标,管脚完全兼容
单片机·嵌入式硬件·物联网·硬件工程
zlinear数据采集卡1 小时前
LC滤波电路深度解析:从电容与电感的“强强联合”到ZLinear采集卡的电源净化实战
单片机·嵌入式硬件
gihigo19981 小时前
基于 51 单片机驱动 RC522进行 NFC 卡读写
单片机·嵌入式硬件
yu85939581 小时前
适合单片机和嵌入式系统的 C 语言 FIR 滤波器实现
c语言·单片机·mongodb
黑小杞2 小时前
工业激光器核心参数详解与选型实战:从理论到产线落地(一)
嵌入式硬件
三佛科技-134163842122 小时前
LP2601可以用PL3380替代吗?PL3380与LP2601对比分析 (参数、管脚、典型应用电路)
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
聚能芯半导体LOLO3 小时前
【HTR3218S I2C 呼吸灯驱动替代 SN3218/IS31FL3218 聚能芯禾润代理】
单片机·嵌入式硬件
Kent Gu3 小时前
MCU & FPGA调试
单片机·嵌入式硬件·fpga开发