OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4002|回复: 5

LWIP网口通信的问题 stm32F407

[复制链接]

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-6-15
在线时间
32 小时
发表于 2018-9-10 17:40:19 | 显示全部楼层 |阅读模式
5金钱
我现在用的LWIP TCP服务器,有一个数据传输问题,麻烦v各位大神指导下。问题:网口接收数据时,只能接受1.5k的数据。大概描述:如果发送1.5k的数据,可以全部接收到,如果发送2k的数据, 只能接收到最后面的0.5k,同理,发送3.5k也只能接收到最后的0.5k,我的理解是数据接收的缓存区只有1.5k,数据多了会更新。但是我找到了DMA描述符的数据缓存区大小,还有pbuf的数据缓存区大小等有关缓存大小的,都不行。

有大神指点我说分包接收,一次只接收1.5k,但是这个怎么实现呢,比如PC端发送了2k的数据过来,我怎么实现分包接收呢,还请指点下,谢谢~

最佳答案

查看完整内容[请看2#楼]

应该是你的接收机制有问题,前面的数据还没有取出来就被覆盖了 我这边的接收流程是这样的:网卡接收一包数据后会产生一个硬件中断,中断处理函数中释放一个信号量,ethernetif_input线程检测到信号量被释放后会调用low_level_input函数将数据包接收下来,然后送到协议栈入口函数中进行处理
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

204

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2443
金钱
2443
注册时间
2017-9-13
在线时间
559 小时
发表于 2018-9-10 17:40:20 | 显示全部楼层
应该是你的接收机制有问题,前面的数据还没有取出来就被覆盖了

我这边的接收流程是这样的:网卡接收一包数据后会产生一个硬件中断,中断处理函数中释放一个信号量,ethernetif_input线程检测到信号量被释放后会调用low_level_input函数将数据包接收下来,然后送到协议栈入口函数中进行处理
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-9-11 02:02:53 | 显示全部楼层
帮顶
回复

使用道具 举报

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-6-15
在线时间
32 小时
 楼主| 发表于 2018-9-11 09:51:18 | 显示全部楼层
HCHDaLeiGe 发表于 2018-9-11 09:22
应该是你的接收机制有问题,前面的数据还没有取出来就被覆盖了

我这边的接收流程是这样的:网卡接收一包 ...

嗯嗯我也觉得是接收机制的问题,我直接用的原子哥的例程,不过还是不太懂怎样分包接收数据,麻烦您给我说一下,假如我接2000字节的数据,该如何修改这个程序呀,我现在接2000字节就只接的到540字节,前面被覆盖了
回复

使用道具 举报

14

主题

204

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2443
金钱
2443
注册时间
2017-9-13
在线时间
559 小时
发表于 2018-9-11 10:10:33 | 显示全部楼层
lyl5530330 发表于 2018-9-11 09:51
嗯嗯我也觉得是接收机制的问题,我直接用的原子哥的例程,不过还是不太懂怎样分包接收数据,麻烦您给我说 ...

我也是新手,看了一下原子的例程,没看出什么问题,等大神来解答吧,帮顶
回复

使用道具 举报

14

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2018-6-15
在线时间
32 小时
 楼主| 发表于 2018-9-11 13:59:03 | 显示全部楼层
已经解决了,结帖~  解决办法:自己申请一个很大的内存,粒子程序中的buffer只能接收1460字节,把这些字节存满后提取到自己申请的大内存中
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 00:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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