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

相关推荐
阿达King哥3 小时前
LIN总线
嵌入式硬件
神一样的老师3 小时前
【兆易创新GD32VW553开发板试用】 BSP 从 GitHub 下载与编译指南
单片机·github·rt-thread
VBsemi-专注于MOSFET研发定制3 小时前
协作机器人螺丝锁付系统功率MOSFET选型方案——高效、精准与安全驱动系统设计指南
单片机·安全·机器人
風清掦4 小时前
【江科大STM32学习笔记-11】SPI通信协议 - 11.2 软件SPI读写W25Q64
笔记·stm32·单片机·嵌入式硬件·学习
LCG元4 小时前
STM32实战:基于STM32F103的智能饮水机温度控制
stm32·单片机·嵌入式硬件
EVERSPIN5 小时前
MCU单片机FOC汽车水泵方案
单片机·嵌入式硬件·mcu·汽车·mcu单片机
yongui478345 小时前
STM32 上实现 SPI 自发自收(Loopback)
stm32·单片机·嵌入式硬件
弘毅 失败的 mian5 小时前
STM32 时钟详解
经验分享·笔记·stm32·单片机·嵌入式硬件·嵌入式
VBsemi-专注于MOSFET研发定制5 小时前
面向AI管道检测机器人的功率MOSFET选型分析——以高集成度、高可靠电源与驱动系统为例
人工智能·单片机·机器人
jghhh015 小时前
STM32 控制 3 个步进电机方案
stm32·单片机·嵌入式硬件