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;
有劳高手指点!!!!

问答
您需要登录后才可以回复 登录 | 注册