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()复位了!!!!

相关推荐
明早你自己说15 分钟前
RT-Thread 在SD卡实现ulog+时间戳保存不同日志方法
stm32·rt-thread·ulog
时空自由民.22 分钟前
MCU Timer定时计算案例
单片机·嵌入式硬件
2501_9222235928 分钟前
ZCC7151S:高效静默,赋能未来电源设计——20V/15A同步降压稳压解决方案
嵌入式硬件
切糕师学AI2 小时前
STM32是什么?
stm32·单片机·嵌入式硬件
普中科技3 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 12 章 STM32 时钟系统
stm32·单片机·嵌入式硬件·arm·时钟树·普中科技
奋斗的牛马5 小时前
FPGA—ZYNQ学习GPIO-EMIO,MIO,AXIGPIO(五)
单片机·嵌入式硬件·学习·fpga开发·信息与通信
Shylock_Mister5 小时前
ESP32事件组替代全局变量:高效控制任务循环
c语言·单片机·物联网
武文斌776 小时前
PCB画板:电阻、电容、电感、二极管、三极管、mos管
单片机·嵌入式硬件·学习
齐落山大勇6 小时前
STM32的ADC(遥杆的控制)
stm32·单片机·嵌入式硬件
EVERSPIN7 小时前
国产MCU-灵动微MM32F0050系列微控制器的简单分享
单片机·微控制器·mm32f0050系列