LWIP网口通信的问题 stm32F407

2019-07-20 06:10发布

我现在用的LWIP TCP服务器,有一个数据传输问题,麻烦v各位大神指导下。问题:网口接收数据时,只能接受1.5k的数据。大概描述:如果发送1.5k的数据,可以全部接收到,如果发送2k的数据, 只能接收到最后面的0.5k,同理,发送3.5k也只能接收到最后的0.5k,我的理解是数据接收的缓存区只有1.5k,数据多了会更新。但是我找到了DMA描述符的数据缓存区大小,还有pbuf的数据缓存区大小等有关缓存大小的,都不行。

有大神指点我说分包接收,一次只接收1.5k,但是这个怎么实现呢,比如PC端发送了2k的数据过来,我怎么实现分包接收呢,还请指点下,谢谢~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
HCHDaLeiGe
1楼-- · 2019-07-20 11:44
应该是你的接收机制有问题,前面的数据还没有取出来就被覆盖了

我这边的接收流程是这样的:网卡接收一包数据后会产生一个硬件中断,中断处理函数中释放一个信号量,ethernetif_input线程检测到信号量被释放后会调用low_level_input函数将数据包接收下来,然后送到协议栈入口函数中进行处理
正点原子
2楼-- · 2019-07-20 15:33
帮顶
lyl5530330
3楼-- · 2019-07-20 16:14
 精彩回答 2  元偷偷看……
HCHDaLeiGe
4楼-- · 2019-07-20 21:05
lyl5530330 发表于 2018-9-11 09:51
嗯嗯我也觉得是接收机制的问题,我直接用的原子哥的例程,不过还是不太懂怎样分包接收数据,麻烦您给我说 ...

我也是新手,看了一下原子的例程,没看出什么问题,等大神来解答吧,帮顶
lyl5530330
5楼-- · 2019-07-20 21:46
 精彩回答 2  元偷偷看……

一周热门 更多>