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

相关推荐
喜喜安9 小时前
CoreS3 屏幕背光
单片机·嵌入式硬件·m5stack cores3
星期天29 小时前
1.4光敏传感器控制蜂鸣器
stm32·单片机·嵌入式硬件·江科大
沐欣工作室_lvyiyi11 小时前
基于无线互联的电源健康监测与控制系统设计(论文+源码)
stm32·单片机·毕业设计·电源健康监测
@good_good_study11 小时前
STM32 ADC单通道采样函数及实验
stm32·单片机
田甲12 小时前
【STM32】基于TPS61165芯片的LED驱动电路
stm32·单片机·嵌入式硬件
d111111111d12 小时前
STM32得中断服务函数,为什么不能有返回值
笔记·stm32·单片机·嵌入式硬件·学习
CS Beginner12 小时前
【单片机】GPIO位结构图解析
单片机·嵌入式硬件
时光の尘12 小时前
嵌入式面试八股文(十九)·裸机开发与RTOS开发的区别
linux·stm32·单片机·iic·rtos·spi
袖手蹲12 小时前
Arduino UNO Q 烘托圣诞节气氛
人工智能·单片机·嵌入式硬件
电子工程师-C5112 小时前
基于51单片机的64位流水灯
单片机·嵌入式硬件·51单片机