【问题标题】:STM32 + LWIP - Pbuf ConfigurationSTM32 + LWIP - Pbuf 配置
【发布时间】: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。

【问题讨论】:

    标签: stm32 lwip


    【解决方案1】:

    LWIP 栈的配置可以在 lwip_opt.h 头文件中找到。 pbuf 缓冲区的大小由宏 PBUF_POOL_BUFSIZE 定义。将其与有效负载的大小进行比较。

    还要注意,如果数据包太大,数据包可能会被分段,因此数据将存储在多个 pbuf 中。

    【讨论】:

      猜你喜欢
      • 2017-06-26
      • 1970-01-01
      • 2018-06-21
      • 2019-09-26
      • 2017-12-06
      • 2018-02-06
      • 2018-02-17
      • 2018-10-12
      • 2020-07-20
      相关资源
      最近更新 更多