我的程序是参考战舰上面改过来的:按复位键 程序连接两次可以连接上,如果断电重连 就连不上,调试助手 显示1035错误
硬件没问题 因为运行 其他程序 上电和复位是一样的
void tcp_client_init(void)//服务器初始化函数{ struct tcp_client_state* ts; struct ip_addr ipaddr; err_t ret_err; IP4_ADDR(&ipaddr,192,168,0,122); //目标IP tcp_client_
PCB = tcp_new(); /* 建立
通信的 TCP 控制块(Clipcb) */ tcp_bind( tcp_client_pcb,IP_ADDR_ANY,TCP_CLIENT_PORT); /* 绑定本地 IP 地址和端口号 不绑定也可以运行 端口号自己分配 */ if(tcp_client_pcb!=NULL) { printf("初始化进入"); ts = mem_malloc(sizeof(struct tcp_client_state)); //申请内存 tcp_arg(tcp_client_pcb, ts); //将程序的协议控制块的状态传递给多有的回调函数 tcp_connect(tcp_client_pcb,&ipaddr,6000,tcp_client_connect); //连接函数tcp_client_accept成功连接到主机调用 tcp_recv(tcp_client_pcb, tcp_client_recv);//指定连接接收到新的数据之后将要调用的回调函数 tcp_poll(tcp_client_pcb, tcp_client_poll, 2);//轮询函数 发送数据 时间为2/2=1 } }
检测状态在主程序中 5S检测一次,connect_net是连接状态标志位
if(connect_net==1) { printf("开始重新连接 ");tcp_closed();tcp_client_init();if(connect_net==0) {printf("重新连接 ");}