我用串口发送AD采集的一些数据到上位机,发现第一个数据很容易丢失,应该不是上位机程序问题,因我用51单片机发送不出错,并且用STM32每次出错都是第一个数据丢失
网上查了同样的问题的解决方法,仍无效果,出错的概率50%
因我的故障现象和他们不完全相同,我的程序一开始就是有时丢失,有时不丢失,采取 措施后仍是这样,急死了!
for(i=0;i<caiji_number;i++)
{
SPI_FLASH_BufferRead(adbuff, 0x100000+i*2,2);//读出存入FLASH中的数据
//USART_ClearFlag(USART1, USART_FLAG_TC);///这就是他们提出的解决方法1
USART_GetFlagStatus(USART1, USART_FLAG_TC);////这就是他们提出的解决方法2
Delay(100);//这也是他们提出的解决方法
USART_SendData(USART1, adbuff[0]);//发送一个字节
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
USART_ClearFlag(USART1, USART_FLAG_TC);
if(i==0) Delay(20000);
USART_SendData(USART1, adbuff[1]);//发送第二个字节
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
LED3_TOGGLE;
if(i==0) Delay(20000);
}
请大侠帮忙呀! |