LWIP超过200字节数据接收乱码

2019-03-24 10:25发布

在用Lwip接收SOCKET调试工具发送的超过200字节数组给LM3s8962处理时,200字节以后的数据出现乱码问题:   过程: 用SOCKET工具发送0123456789的序列,如图SocketData1.jpg:   现象: 在 Keil中调试信息,如图SocketData2.jpg:   求解: 是不是Lwip中要对Pbuf大小进行设置?怎么处理这个问题? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
fengzhang2002
1楼-- · 2019-03-25 19:45
 精彩回答 2  元偷偷看……
h0nly_zhang
2楼-- · 2019-03-25 23:32

 结贴!

 

       在回调函数中定义一个pbuf的结构,在使用pbuf *p时,将其传给p_r指针,程序中对p_r进行操作,而不是对p进行操作。

        struct pbuf *p_r;

        //

        for(p_r=p; p_r!=NULL; p_r=p_r->next)
        {
            memcpy(&gucFModelStr[bufLen], p_r->payload, p_r->len);

            bufLen += p_r->len;

        }

这样修改之后,就不会出现数据接收几次就不能再进入接收中断的情况了。

 

具体原因还是不清楚,但总是感觉p指针及p->next指针占用的内存没有释放。在这里留个记号,等以后有时间再深入研究,也请高手们不吝赐教!

 

 问题解决了,多谢Mr.FengZhang 和 Mr.Academic的鼎力相助!致敬!!!

academic
3楼-- · 2019-03-26 03:43
好,这个问题记下了,谢谢与我们分享,希望早日找到具体原因。
mj5lucky
4楼-- · 2019-03-26 05:01
 精彩回答 2  元偷偷看……
ccitlad
5楼-- · 2019-03-26 06:14
#define MEM_SIZE                        (24 * 1024)  // default is 1600, was 16K

默认 1600  怎么会是16K呢???  (1600/1024) K   不是这样的吗??

一周热门 更多>

相关问题

    相关文章