打印

串口发送第一个数据丢失

[复制链接]
324|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
追光少年|  楼主 | 2019-11-20 16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用串口发送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);               
        }               
请大侠帮忙呀!

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

379

主题

379

帖子

0

粉丝