你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
打狗的猫

打狗的猫

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
1 回答

stm32F429 lwip tcp客户端,使用cubmx生成的代码,接收数据报错,报错几次就会彻底不能收发数据了

STM32F4 STM32H7
打狗的猫 打狗的猫 回答时间: 2024-7-1 14:46

补充具体的代码: 发送数据代码: err_t send_tcp_data(const void *data, u16_t len) { err_t err; if (tcp_conn != NULL) { / 发送数据 / err = tcp_write(tcp_conn, data, len, TCP_WRITE_FLAG_MORE); // err = tcp_write(tcp_conn, data, len, 0); if (err == ERR_OK) { / 数据发送成功,需要调用tcp_output确保数据发送出去 / tcp_output(tcp_conn); } return err; } else { / 没有有效的TCP连接 / return ERR_CONN; } } 接收数据代码: err_t tcp_client_recv222(void arg,struct tcp_pcb tpcb,struct pbuf *p,err_t err) { if (p != NULL) { if(fgServerDataRcv==FALSE) { memcpy(u8ServerRcvDataBuff,(p->payload),p->len); fgServerDataRcv=TRUE; } // struct pbuf *q; // for (q = p; q != NULL; q = q->next) // { // Queue_Push_Array(&qUartT3Rx,(q->payload),q->len); // } tcp_recved(tpcb, p->len); pbuf_free(p); } else { / 閲婃斁缂撳啿鍖烘暟鎹?/ tcp_close(tpcb); tcp_recv(tpcb, NULL); } } tcp初始化函数: void tcp_client_init() { err_t err; PRINTF("tcp_client_init--\r\n"); IP4_ADDR(&service_dest_ip, SERVER_IP_ADDR0, SERVER_IP_ADDR1, SERVER_IP_ADDR2, SERVER_IP_ADDR3); tcp_conn = tcp_new(); if (tcp_conn != NULL) { tcp_conn->so_options |= SOF_KEEPALIVE; / 启用保活机制 / tcp_conn->keep_idle = 1000; / 保活时间 / tcp_recv(tcp_conn, tcp_client_recv); } } main函数的while循环中加入MX_LWIP_Process();,循环之前加tcp初始化函数。。 各位大佬,请帮忙看下,万分感谢

赞0
打狗的猫 打狗的猫


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16