问答

汇集网友智慧,解决技术难题

A星星之火

TA的家园币:10  

  • GD32使用DMA发送问题

    voidu3_printf(char*fmt,...){va_listap;va_start(ap,fmt);vsprintf((char*)USART3_TX_BUF,fmt,ap);va_end(ap);dma_channel_disable(DMA0,DMA_CH1);dma_memory_address_config(DMA0,DMA_CH1,(uint32_t)USART3_TX_BUF);dma_transfer_number_config(DMA0,DMA_CH1,strlen((constchar*)USART3_TX_BUF));dma_channel_enable(DMA0,DMA_CH1);usart_dma_transmit_config(USART2,USART_DENT_ENABLE);//使能串口DMA发送while(RESET==dma_flag_get(DMA0,DMA_CH1,DMA_FLAG_FTF)){};/*waitDMAChanneltransfercomplete*/memset(USART3_TX_BUF,0,USART3_MAX_SEND_LEN);}如上代码:第一次发送正常,第二次发送,对端只能收到相应长度的空字符怀疑是第二次发送的时候没有从首地址开始发送,同样代码stm32是正常的

    DMA SAR USART AN ST

    2021-03-08 0