有几个地方可以先修改看下行不行,没有验证啊。因为你的代码不全,只能按照你给的代码我觉得可以试试的地方。
还没有验证啊,可以先尝试下,有问题我们再讨论。
1、图中的代码改为:
if(DMA_GetFlagStatus(DMA2_FLAG_TC10)== RESET){
![](https://verimake.com/assets/files/2023-05-29/1685343794-12452-image.png)
2、图中main里面的代码改为:
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Delay_Init();
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n", SystemCoreClock);
DMA10_INIT();
UART8_CFG();
USART_DMACmd(UART8,USART_DMAReq_Tx,ENABLE);
while(1){
char yuyin[] = "123456";
uartWriteYuyinStr(yuyin);
Delay_Ms(2000);
}
}
![](https://verimake.com/assets/files/2023-05-29/1685343996-829159-image.png)
3、这个部分可以不加,不过可以试试。
在端口初始化里面添加一句
DMA_Cmd(DMA2_Channel10, ENABLE); /* USART8 Tx */
![](https://verimake.com/assets/files/2023-05-29/1685344079-133435-image.png)