STM32 + LWIP - Pbuf 配置
Posted
技术标签:
【中文标题】STM32 + LWIP - Pbuf 配置【英文标题】:STM32 + LWIP - Pbuf Configuration 【发布时间】:2017-01-01 07:03:44 【问题描述】:我现在正在使用 LWIP+STM32,现在尝试从浏览器获取 http GET/POST。所以基本上,连接很好,我确实收到了带有以下代码的数据包:
if((err = netconn_recv(conn, &inbuf)) == ERR_OK)
netbuf_first(inbuf);
do
netbuf_data(inbuf, (void**)&buf, &buflen);
//recieve_buffer=concat(recieve_buffer,buf);
DBGSTR("%d",i);
i++;
while(netbuf_next(inbuf) >= 0);
但不知何故,它没有接收到整个数据包,即使接收缓冲区非常大,do-while 循环也总是运行一次。我检查了wireshark,内容主体确实发送了。我猜是因为pbuf不够分配。但是任何人都知道如何配置 pbuf。
【问题讨论】:
【参考方案1】:LWIP 栈的配置可以在 lwip_opt.h 头文件中找到。 pbuf 缓冲区的大小由宏 PBUF_POOL_BUFSIZE 定义。将其与有效负载的大小进行比较。
还要注意,如果数据包太大,数据包可能会被分段,因此数据将存储在多个 pbuf 中。
【讨论】:
以上是关于STM32 + LWIP - Pbuf 配置的主要内容,如果未能解决你的问题,请参考以下文章
《嵌入式 - Lwip开发指南》第3章 移植LWIP(无系统)