【发布时间】:2020-09-27 07:23:12
【问题描述】:
我尝试使用 LWIP 连接到远程主机,但尝试连接时失败并出现路由错误。
我已经使用 netconn、tcp 甚至 udp 尝试了一些不同的设置,但是当我尝试连接时所有设置都失败了。所以我认为在调用 connect 之前我在设置中遗漏了一些相当重要的东西,但我不知道出了什么问题。
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART3_UART_Init();
Print("USART init ok\n");
MX_USB_OTG_FS_PCD_Init();
Print("USB pcd init ok\n");
MX_LWIP_Init();
Print("LWIP init ok\n");
struct tcp_pcb * tcp_client = {0};
tcp_client = tcp_new();
if(tcp_client != 0)
{
Print("tcp_new ok\n");
err_t error = {0};
error = tcp_bind(tcp_client, IP_ADDR_ANY);
if(error == ERR_OK)
{
Print("tcp_bind ok\n");
err_t errorConnect = {0};
struct ip4_addr remoteIP;
IP4_ADDR(&remoteIP, 192, 168, 127, 250);
errorConnect = tcp_connect(tcp_client, &remoteIP, 4002, tcpConnect);
if(errorConnect == ERR_OK)
{
Print("tcp_connect ok\n");
}
else
{
// I end up here with ERR_RTE as a result
Print("Error: tcp_connect \n");
}
}
else
{
Print("Error: tcp_bind\n");
}
}
else
{
Print("Error: tcp_new faild\n");
}
Print("DONE!\n\n");
while (1)
{
}
}
我使用 STM32CubeIDE 和 LWIP 已添加为中间件, 我使用的卡是 ST nucleo F746ZG
卡直接连接到我的电脑,我可以在我电脑的网络设置中看到它连接。所以某种形式的谈判正在发生。
【问题讨论】:
-
系统是如何联网的?您尝试连接的主机在哪里?在同一个网络上?在不同的网络上,但仍然“在同一栋楼里”?远程网络上的某个地方?
标签: c iot ethernet lwip stm32cubeide