公羊子丹 发表于 2025-6-12 07:18

串口 DMA 一启用就卡死?用的是 G070

改成 DMA 模式后程序就不动了,CubeMX 配了好几遍也不对劲,怀疑中断没触发。

Clyde011 发表于 2025-6-12 07:24

DMA 配错方向也会这样,记得设成 memory to peripheral。

公羊子丹 发表于 2025-6-12 07:25

我之前也碰过,结果是忘开 DMA 的中断了……

周半梅 发表于 2025-6-12 07:27

HAL_UART_Transmit_DMA 用了没?别忘关 IDLE 检测。

帛灿灿 发表于 2025-6-12 07:28

看下 NVIC 配置是不是少了 USART 的 DMA 通道。

童雨竹 发表于 2025-6-12 07:29

用逻辑分析仪看看是不是数据根本没发出去。

万图 发表于 2025-6-12 07:30

有没有打开 USART 的 TX DMA 请求位?

Wordsworth 发表于 2025-6-12 07:31

我是用 LL 库做的,感觉比 HAL 更直观点。

Bblythe 发表于 2025-6-12 07:32

你有设 FIFO 模式吗?G0 有些版本支持。

Pulitzer 发表于 2025-6-12 07:32

把 DMA 中断服务函数打点调一下。

Uriah 发表于 2025-6-12 07:33

上拉电阻够吗?我以前用 10k 不行。

内政奇才 发表于 2025-6-12 12:54

串口的 TX 和 RX 引脚需正确配置为复用推挽输出模式和浮空输入模式。若配置错误,可能导致 DMA 传输异常,进而使系统卡死。

flycamelaaa 发表于 2025-6-12 14:00

串口线路可能受到外部电磁干扰,导致数据传输错误,引发 DMA 传输异常。

flycamelaaa 发表于 2025-6-12 16:56

DMA 通道配置冲突?

powerantone 发表于 2025-6-12 19:56

DMA 的传输方向、数据宽度、传输模式等参数设置错误,可能导致数据传输异常。

stormwind123 发表于 2025-6-12 20:00

中断优先级不合理?

probedog 发表于 2025-6-12 21:23

可能是中断服务函数处理不当导致的。。
页: [1]
查看完整版本: 串口 DMA 一启用就卡死?用的是 G070