所以我最近将LWIP的v2.0.3迁移到了我开发的网关设备上。这基于ATSAME70微控制器。基本功能是将HTTP帖子发送到服务器,但是由于某些原因,tcp_connect现在返回ERR_RTE或ERR_VAL。在LWIP文档中,关于这些错误是什么以及如何解决这些错误,没有很多有用的指针。这是设置TCP客户端的功能(我在这里用x表示IP地址,但显然在实际的代码中是正确的IP地址):
struct ip_addr cloud_ip;
/**
* Set up and initialise the TCP connection for sending a reading to the cloud.
*
*/
void tcp_cloud_setup_reading_post(void)
{
// Temp Buffer for IP Addresses
static char tmp_buff[16];
// Set the IP Address of the Data Pipeline
ipaddr_aton("xxx.xxx.xxx.xxx", &cloud_ip);
// Print a Message
printf("Attempting Cloud Post to %s -> ", ipaddr_ntoa_r((const ip_addr_t *)&(cloud_ip), tmp_buff, 16));
// Create a Struct for the TCP Connection
struct tcp_pcb *cloud_pcb;
// Create a new PCB for the TCP Connection
cloud_pcb = tcp_new();
// Set the Connection Error Callback Function
tcp_err(cloud_pcb, tcp_cloud_connection_error);
// Set the Sent Callback Function
tcp_sent(cloud_pcb, tcp_cloud_reading_sent);
// Set the Receive Callback Function
tcp_recv(cloud_pcb, tcp_cloud_get_timestamp);
// Connect to the Cloud Server
//tcp_connect(cloud_pcb, &cloud_ip, 80, tcp_cloud_connect_reading_post);
err_t tcp_error_conn = tcp_connect(cloud_pcb, &cloud_ip, 80, tcp_cloud_connect_reading_post);
printf("ERROR CODE: %d\r\n", tcp_error_conn);
}
如果有人对我为什么出现错误有任何建议,请告诉我!
谢谢