首页 > 解决方案 > 在 DMA 模式下无法从 UART 接收数据

问题描述

我试图在我的 NUCLEO F446RE stm32 板上从我的电脑接收 8 个字节。传输到电脑工作。问题是,我无法使用 DMA 接收数据。我看到了一个代码几乎相同的例子,它对这个人有用。如果我使用中断模式(只需将 HAL_UART_Receive_DMA 更改为 HAL_UART_Receive_IT,它就可以工作,并且正在调用 RX Complete 回调。

这是完整的 main.c。DMA 处于循环模式。

main.c

https://pastebin.com/1W4BCjxB

标签: stm32stm32f4nucleocubemxstm32cubeide

解决方案


我已经解决了,这实际上是荒谬的。

因此,这是 CubeMX 生成的代码的一部分:

MX_GPIO_Init();
MX_USART2_UART_Init();
MX_DMA_Init();

如果我按以下方式订购:

MX_GPIO_Init();
MX_DMA_Init();
MX_USART2_UART_Init();

有用!!!


推荐阅读