找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 709|回复: 2
打印 上一主题 下一主题
收起左侧

STM32单片机+LWIP TCP CLIENT tcp_write发送长数据数据失败

[复制链接]
回帖奖励 10 黑币 回复本帖可获得 10 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:955654 发表于 2022-9-28 13:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位大佬:
在STM32 集成lwip时,使用 tcp_write发送长数据时,将数据拆分成 900一个包 分多个包发送, MEM_SIZE为1600  
1. tcp_write 没发送完一个数据包后 延迟一段时间发送
   此时问题是  只有第一个和最后一个(最后一个的数据要小于700)发送的数据包发送成功,其他的均 出现 could not allocate memory for pbuf copy size 900 错误

有试过 1.每次tcp_write 发送完后 调用 mem_free 释放内存,但这个没有效果,是这种释放内存的方式不对吗?
           2.将MEM_SIZE 的值增大,是可以增加tcp_write发送成功的次数

请问 能否在MEM_SIZE的值不变的情况下 tcp_write 能够一直连续发送成功?,万分感谢!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2022-9-29 16:25 | 只看该作者
是不是调用了现成的发送函数啊?查一下此函数的用法。
回复

使用道具 举报

板凳
ID:844772 发表于 2022-9-29 17:29 | 只看该作者
没看程序,也不知接收速率及中间的动作,也就瞎猜:你只改了MEM_SIZE,把最小堆空间也加大一下。另外,主要是看看,数据接收逻辑,问题应该出在那里。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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