古月魂 发表于 2023-2-18 16:54

GD32F470VI USART5 + DMA异常

USART5使用DMA接收和发送异常,IDLE可以被触发,查询DMA无数据;发送使用DMA也发送不出去,但轮询发送正常。(使用CUBEMX配置STM32F429VI的USART6,程序下载至GD32F470VI,USART5 DMA+IDLE收发是正常的),可以判断硬件无问题。已经按照F45x/F40x的勘误手册,增加了DMA标志清除处理,还是不行。同样的架构,USART0、USART1、USART2使用正常。



USART5的IO初始化,和USARTx配置框架:


接收发送DMA配置框架



USART1和USART5初始化配置

主程序配置USARTx


USARTx使用DMA发送数据


USARTx接收IDLE和发送完成中断处理

USART1和USART5中断响应

caizhiwei 发表于 2023-2-19 11:44

有空看看,是官方历程里的吗?

古月魂 发表于 2023-2-20 09:17

caizhiwei 发表于 2023-2-19 11:44
有空看看,是官方历程里的吗?

DMA配置是参照例程的。手里有这款片子,可以测试下USART5,是不是也有问题

guijial511 发表于 2023-2-20 19:08

用ST的配置反而还可以?

古月魂 发表于 2023-2-27 15:37

guijial511 发表于 2023-2-20 19:08
用ST的配置反而还可以?

实测可以

t714664420 发表于 2023-3-1 10:48

您好,您了解gd32f470 dac+dma相关吗?

古月魂 发表于 2023-3-1 15:27

t714664420 发表于 2023-3-1 10:48
您好,您了解gd32f470 dac+dma相关吗?

官网下载“GD32F4xx_Firmware_Library”,里面有应用示例。

Jacquetry 发表于 2023-3-2 19:10

st库兼容性这么强?

ingramward 发表于 2023-3-4 19:56

如何用dma控制usart发送数据

pixhw 发表于 2023-3-4 20:38

1、首先初始化USART,打开DMA1的外设时钟。2、其次初始化DMA数据流,使能中断其数据。3、最后即可请求dma了。

bestwell 发表于 2023-3-4 21:19

spi1的dma可以和usart3的dma一起用么

louliana 发表于 2023-3-4 22:38

usart的DMA方式发送 一个数 ,程序怎么写?

xiaoyaodz 发表于 2023-3-5 10:19

usart的DMA方式发送 一个数 ,程序怎么写?

chenci2013 发表于 2023-3-7 19:42

1、首先初始化USART,打开DMA1的外设时钟。2、其次初始化DMA数据流,使能中断其数据。3、最后即可请求dma了。

zerorobert 发表于 2023-3-7 20:22

如何用dma控制usart发送数据

updownq 发表于 2023-3-7 21:44

spi1的dma可以和usart3的dma一起用么

ambitionXw 发表于 2023-3-9 12:37

你好,我最近也刚接触GD32F470的东西,可以请教你一下吗?

guozq980 发表于 2023-3-23 09:08

古月魂 发表于 2023-2-20 09:17
DMA配置是参照例程的。手里有这款片子,可以测试下USART5,是不是也有问题 ...

遇到同样问题

guozq980 发表于 2023-3-23 09:37

dma_channel_subperipheral_select(DMA1, DMA_CH6, DMA_SUBPERI5);

古月魂 发表于 2023-3-28 19:57

guozq980 发表于 2023-3-23 09:37
dma_channel_subperipheral_select(DMA1, DMA_CH6, DMA_SUBPERI5);

感谢,没注意外设配置,对应好后问题解决。
页: [1]
查看完整版本: GD32F470VI USART5 + DMA异常