野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15322|回复: 5

串口发送第一个数据丢失

[复制链接]
发表于 2015-12-22 22:38:14 | 显示全部楼层 |阅读模式
我用串口发送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);               
        }               
请大侠帮忙呀!
回复

使用道具 举报

发表于 2015-12-23 08:36:23 | 显示全部楼层
        while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);

标志改成USART_FLAG_TXE
回复 支持 反对

使用道具 举报

发表于 2015-12-23 09:00:41 | 显示全部楼层
flyleaf 发表于 2015-12-23 08:36
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);

标志改成USART_FLAG_TXE

mark mark mark mark
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-24 20:09:03 | 显示全部楼层
flyleaf 发表于 2015-12-23 08:36
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);

标志改成USART_FLAG_TXE

唉,修改后重试,还是出错。用自编上位机软件,发送10次,出错1 次,用野火附带的串口助手,10次出错5次,好象与上位机软件有关,不过两种软件都会出错,又不一定是上位机程序问题
回复 支持 反对

使用道具 举报

发表于 2015-12-25 08:31:28 | 显示全部楼层
那第一次发送之前也先清除一次标志
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-25 21:53:30 | 显示全部楼层
flyleaf 发表于 2015-12-25 08:31
那第一次发送之前也先清除一次标志

又按你说的修改了,发现出错的概率是低了,但是出错都是第一次打开上位机程序的时候,不关闭上位机软件(可以清计数器 清接收缓冲区 甚至关闭再打开串口) 以后再接收就没发现错误
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-11 07:47 , Processed in 0.033504 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表