项目使用STM32CubeMX生成配置代码,
USART1 使用DMA一直无法发送数据,不使用DMA,而使用HAL_UART_Transmit能正常发送;
百度上搜索,发现存在几例同样DMA无法发送的情况,但不是一个系列的芯片;
依照搜索到方法均无法解决;
遂逐个配置对比,发现使用Cube重新生成同样配置时DMA串口发送正常;
配置没问题,开始排查代码;
对比发现main中初始化顺序不同
左侧为DMA非正常工作配置顺序,右侧为DMA正常工作的配置顺序。
可以看出左侧DMA初始化排在串口初始化后面,右侧则在串口初始化前。
将左侧DMA初始化调用移至串口初始化前,问题解决
转载请注明:神奇海域 » 记一次STM32WB调试-串口DMA无法发送