关于输出数组乱序和缺失问题

在做比赛项目时通过USART1输出数组里的元素,但显示出来的数组一直为乱序。最后发现问题所在,因为代码的执行速度很快,后发的新数据会将之前串口发送寄存器里的旧数据覆盖,导致打印出来的数据不全或为乱序。
**解决方案:**在发送数据语句后面加上

while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);	  	//等待发送数据寄存器为空

这样就会等发送数据寄存器里的数据全部发送完毕之后,再发送新的数据,这样就不会出现乱序或缺失数据的情况。

你可能感兴趣的:(STM32)