STM32CubeIDE生成问题代码,导致UART串口DMA无法正常使用

本文介绍了在STM32CubeIDE中遇到的一个问题,即通过cubeMX生成代码后,UART串口的DMA配置出现问题,导致无法正常使用。问题源于DMA配置函数在UART初始化之后,解决方案是确保在cubeMX中同时配置外设和DMA,避免单独修改DMA设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32CubeIDE生成问题代码,导致串口DMA无法正常使用


今天第二次遇到了cubeIDE生成的问题代码,专门记录一下。

cubeMX生成正常代码的过程

用STM32f407IGT6举例,用cubeIDE新建一个过程,我把它命名为uart_dma_init_issue,
按需求选择晶振,配置时钟,设置debug模式(这些都不影响问题复现)。

在这里插入图片描述

开启USART 1, 打开DMA接收
在这里插入图片描述
保存并生成代码,在生成的代码中我们可以看到DMA的配置先于UART1

在这里插入图片描述
使用如下函数可以正常接收串口信息

HAL_StatusTypeDef HAL_UARTEx_ReceiveToIdle_DMA(UART_HandleTypeDef *huart, uint8_t *pData
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值