STM32串口发送,如何修改为DMA发送

while(pDMX1_buf <= 192) 

{

if(USART1->SR & (1<<6))
{ 
   /*发送起始码 00*/
    
         USART1->DR = 0x0100 | str1[pDMX1_buf];
   pDMX1_buf++;
 }  
    while((USART1->SR&0X40)==0);

}

这个代码比较占用CPU,如何改为用DMA方式发送

bdstm32dma串口就行了啊 有例程的

看我写的SPI-DMA发送的代码或许能够得到启发
https://blog.csdn.net/weixin_43572492/article/details/94379065

UART的DMA通道要自己去查。
记得先初始化UART,再初始化DMA。
被发送的数据串,最好是全局变量。
发送完成的判断,使用中断或查询都可以。