You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LwIP TCP连接无法建立求助:RST/ACK响应及路由异常

TCP连接建立失败排查求助

问题现象

  • 板卡调用tcp_connect()发起TCP连接,Wireshark抓包显示板卡已发送首个SYN握手包,但电脑返回带RST+ACK标志的TCP包终止连接,后续出现目标端口不可达的ICMP消息
  • 调试模式下,tcp_connect()返回ERR_RTE(路由错误)并进入错误处理逻辑;但正常运行时不会进入该错误分支

相关代码

/* USER CODE BEGIN 0 */
extern struct netif gnetif;
struct tcp_pcb* tcp_echoserver_pcb;
/* USER CODE END 0 */

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_LWIP_Init();
  /* USER CODE BEGIN 2 */

  ip_addr_t myIPADDR,destip;
  IP_ADDR4(&myIPADDR,192,168,33,1);
  IP_ADDR4(&destip,192,168,33,101);

  tcp_echoserver_pcb = tcp_new();

  err_t err = tcp_bind(tcp_echoserver_pcb, &myIPADDR, 8);

  err_t e = tcp_connect(tcp_echoserver_pcb, &destip, 8, confail);

  if (e == ERR_RTE)
  {
      while(1)
      {
          HAL_GPIO_TogglePin(GPIOB, LD3_Pin);
          HAL_Delay(500);
      }
  }

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
      ethernetif_input(&gnetif);
      sys_check_timeouts();
  }
  /* USER CODE END 3 */
}

排查需求

请求协助定位问题根因,如需更多信息可补充提供


内容的提问来源于stack exchange,提问作者confusedfresher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:57:27