OpenEdv-开源电子网

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

使用LWIP的netconnAPI遇到的一个问题

[复制链接]

1

主题

2

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2021-11-28
在线时间
4 小时
发表于 2025-4-27 10:44:01 | 显示全部楼层 |阅读模式
1金钱
使用STM32H723做以太网功能时,,移植LWIP,调用NETCONN API,单片机做服务端,通过网络调试助手与单片机做数据回环测试时发现,在50H在,大于100字节的情况下,会导致单片机以太网宕机。请问有做过类似功能的朋友能分享一下要如何实现么?测试代码如下:
  1. void tcpechp_thread(void *arg) {
  2.   struct netconn *conn, *newconn;
  3.   err_t err;
  4.   LWIP_UNUSED_ARG(arg);

  5.   /* 创建服务器 */
  6.   conn = netconn_new(NETCONN_TCP);
  7.   netconn_bind(conn, IP_ADDR_ANY, PORT_NUM);

  8.   /* 设置监听 */
  9.   netconn_listen(conn);

  10.   while (1) {
  11.     //    printf("go to this netconn\n");
  12.     /* 等待接收新的连接 */
  13.     err = netconn_accept(conn, &newconn);

  14.     /* 处理新连接 */
  15.     if (err == ERR_OK) {
  16.       struct netbuf *buf;
  17.       void *data;
  18.       u16_t len;

  19.       /* 简单的数据回环 */

  20.       while ((err = netconn_recv(newconn, &buf)) == ERR_OK) {
  21.         do {
  22.           netbuf_data(buf, &data, &len);
  23.           err = netconn_write(newconn, data, len, NETCONN_COPY);
  24.           if (err != ERR_OK) {
  25.             printf("Send failed: %d\n", err);
  26.             netbuf_delete(buf);
  27.             break; // 跳出循环,避免不一致
  28.           }
  29.         } while (netbuf_next(buf) >= 0);
  30.         netbuf_delete(buf);
  31.       }
  32.       netconn_close(newconn);
  33.       netconn_delete(newconn);
  34.     }
  35.     osDelay(2);
  36.   }
  37. }
复制代码



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

54

主题

351

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1118
金钱
1118
注册时间
2022-4-20
在线时间
382 小时
发表于 2025-4-30 17:54:04 | 显示全部楼层
具体描述一下你的整个现象,尤其调试助手的参数设置
发送那里先零拷贝看看
又菜又爱指点
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-16 17:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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