关于LWIP TCP 丢失数据,求助各位!!

2019-07-20 01:58发布

用的是STM32F407ZET单片机,DP83848K以太网芯片,参考原子哥的程序已经实现了Tcp客户端,能够Ping通,实现数据收发。初步实现的功能是串口接收数据,然后缓存到申请的2K空间的缓冲区,然后读出通过网线转发到电脑端的网络调试助手把数据显示出来,串口的波特率是115200,每次发送的数据包是100字节,我设置的是100ms定时发送一次,做测试时发现会丢包,丢的是整个数据包丢失(就是都是100字节数据包的倍数),丢失率小于1%,但是想做到完全不丢失。目前程序中就是初始化了串口DMA和网口这部分程序,无关的全部都屏蔽了的。
求助各位论坛大牛,丢包的可能会是什么,需要修改什么地方?
if((tcp_client_flag&1<<7)==0)//判断有没有数据在发送
{
        u16Length = Queue_GetLength(&Q_FIFOInfo);//获取存在2K空间缓冲区的数据量长度
        if (u16Length != 0)//如果长度不为0
        {
                Queue_GetData(tcp_client_sendbuf, &Q_FIFOInfo, u16Length);取出该部分数据
                tcp_client_flag|=(1<<7);     //标志位
                                       
                tcp_client_usersent(tcppcb);  //发送数据
                                       
                memset(tcp_client_sendbuf,0,sizeof(tcp_client_sendbuf));//tcp_client_sendbuf大小为1024
        }
}

发送部分也是按照原子哥的例程,并没有做什么修改。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
易方亮
1楼-- · 2019-07-20 06:30
顶顶顶顶顶顶顶顶
易方亮
2楼-- · 2019-07-20 12:23
 精彩回答 2  元偷偷看……
易方亮
3楼-- · 2019-07-20 16:41
 精彩回答 2  元偷偷看……
触电丶
4楼-- · 2019-07-20 18:13
帮顶!!

一周热门 更多>