21ic问答首页 - GD32F503RCT6 无法启动DMA发送
GD32F503RCT6 无法启动DMA发送
如下程序,使用DMA发送数据到USART2,单发USART正常发送,但用DMA批量发送不能启动:
dmamux_event_generation_disable(DMAMUX_MUXCH2); //DMAMUX_MUXCH1
dma_interrupt_disable(DMA0,DMA_CH3,DMA_INT_FTF);
usart_transmit_config(USART2, USART_TRANSMIT_ENABLE);
usart_flag_clear(USART2,USART_FLAG_TC);
usart_dma_transmit_config(USART2,USART_DENT_ENABLE);
//usart_dma_transmit_config(USART2,USART_DENT_DISABLE);
dma_channel_disable(DMA0,DMA_CH3); //DMA_CH1 -> DMA_CH3
//usart_data_transmit(USART2,0x55);
dma_memory_address_config(DMA0,DMA_CH3,(uint32_t)lcdptr->lcdtx);
dma_transfer_number_config(DMA0,DMA_CH3,lcdptr->lcdtxleng);
dma_interrupt_flag_clear(DMA0,DMA_CH3,DMA_INT_FLAG_FTF);
dma_interrupt_enable(DMA0,DMA_CH3,DMA_INT_FTF);
dmamux_request_id_config(DMAMUX_MUXCH2,DMA_REQUEST_USART2_TX);
dmamux_synchronization_disable(DMAMUX_MUXCH2);
dma_channel_enable(DMA0,DMA_CH3);
//dmamux_event_generation_enable(DMAMUX_MUXCH1);
lcdptr->lcdst = TRANS_IN;
有劳高手指点!!!!
dmamux_event_generation_disable(DMAMUX_MUXCH2); //DMAMUX_MUXCH1
dma_interrupt_disable(DMA0,DMA_CH3,DMA_INT_FTF);
usart_transmit_config(USART2, USART_TRANSMIT_ENABLE);
usart_flag_clear(USART2,USART_FLAG_TC);
usart_dma_transmit_config(USART2,USART_DENT_ENABLE);
//usart_dma_transmit_config(USART2,USART_DENT_DISABLE);
dma_channel_disable(DMA0,DMA_CH3); //DMA_CH1 -> DMA_CH3
//usart_data_transmit(USART2,0x55);
dma_memory_address_config(DMA0,DMA_CH3,(uint32_t)lcdptr->lcdtx);
dma_transfer_number_config(DMA0,DMA_CH3,lcdptr->lcdtxleng);
dma_interrupt_flag_clear(DMA0,DMA_CH3,DMA_INT_FLAG_FTF);
dma_interrupt_enable(DMA0,DMA_CH3,DMA_INT_FTF);
dmamux_request_id_config(DMAMUX_MUXCH2,DMA_REQUEST_USART2_TX);
dmamux_synchronization_disable(DMAMUX_MUXCH2);
dma_channel_enable(DMA0,DMA_CH3);
//dmamux_event_generation_enable(DMAMUX_MUXCH1);
lcdptr->lcdst = TRANS_IN;
有劳高手指点!!!!

问答
赞0
啥叫自动变成SLAVE模式?如果怀疑芯片本身有问题需要走FA了,不过时间会很长
其他功能受影响么
评论
2026-07-16
赞0
评论
2026-07-07
赞0
确认DMA_CH3CTL 中CHEN位为1,有设置,但感觉DMA与UART2间缺启动握手!
评论
2026-07-07
赞0
评论
2026-07-07
赞0
评论
2026-07-07
赞0
没看到你的触发语句是什么?
DMA都是要触发的,软件或者硬件触发。
你这情况应当是软件触发,但是没看到。
评论
2026-07-07
赞0
评论
2026-07-07
赞0
谢谢!请问一下只要DMAMUX设置 请求路由ID,设置好DMA后,启动对应通路的DMA ENABLE是否即可启动DMA发送,但我的无反应,DMA无启动,另一点:对应USART通路不用DMA发送是OK的!有劳提点!万谢!
评论
2026-07-07
赞0
评论
2026-07-07
您需要登录后才可以回复 登录 | 注册