stm32 - 在 DMA 模式下无法从 UART 接收数据
问题描述
我试图在我的 NUCLEO F446RE stm32 板上从我的电脑接收 8 个字节。传输到电脑工作。问题是,我无法使用 DMA 接收数据。我看到了一个代码几乎相同的例子,它对这个人有用。如果我使用中断模式(只需将 HAL_UART_Receive_DMA 更改为 HAL_UART_Receive_IT,它就可以工作,并且正在调用 RX Complete 回调。
这是完整的 main.c。DMA 处于循环模式。
main.c
解决方案
我已经解决了,这实际上是荒谬的。
因此,这是 CubeMX 生成的代码的一部分:
MX_GPIO_Init();
MX_USART2_UART_Init();
MX_DMA_Init();
如果我按以下方式订购:
MX_GPIO_Init();
MX_DMA_Init();
MX_USART2_UART_Init();
有用!!!
推荐阅读
- angular - 在 Angular TS 文件中找不到 Angular Input 属性
- dart - 如何修复未捕获的错误:需要一个“LIElement”类型的值,但得到一个“_JsonMap”类型的值
- r - 如何在R中格式化SPEI包的硬编码绘图功能的x轴?
- eslint - ESLint 抱怨 ESLint 插件没有安装在 monorepo 中
- excel - 我不确定我的代码在 vlookup 上有什么问题
- c - 在执行线程时更改 C 线程参数
- regex - 用于匹配 lucene 中任意 2 个字母 + 任意 6 个数字的正则表达式
- python - 从 qt-designer ui 文件以编程方式添加到由 pyuic 创建的窗口
- r - 使用 sp::merge() 作为函数在 R 中拆分应用和组合的更好方法
- python - 一个如何通过不同而不是相似来聚类?使用反欧几里得距离是否可以接受?