我想在程序里面写死ip,直接跳过触屏按键设置ip,但是一直连接失败,请问为什么?而如果我不注释掉while循环的话连接就会成功。
我的程序修改如下:
//IP设置
//title:ip设置标题
//mode:工作模式
//port:端口号
//*ip:ip缓存区(返回IP给上层函数)
//返回值:0,确认连接;1,取消连接.
u8 atk_8266_ip_set(u8* title,u8* mode,u8* port,u8* ip)
{
u8 res=0;
u8 key=0;
u8 timex=0;
u8 iplen=0; //IP长度
LCD_Clear(WHITE);
POINT_COLOR=RED;
Show_Str_Mid(0,30,title,16,240); //显示标题
Show_Str(30,90,200,16,"工作模式:",16,0); //工作模式显示
Show_Str(30,110,200,16,"IP地址:",16,0); //IP地址可以键盘设置
Show_Str(30,130,200,16,"端口:",16,0); //端口号
kbd_fn_tbl[0]="连接";
kbd_fn_tbl[1]="返回";
atk_8266_load_keyboard(0,180); //显示键盘
POINT_COLOR=BLUE;
Show_Str(30+72,90,200,16,mode,16,0); //显示工作模式
Show_Str(30+40,130,200,16,port,16,0); //显示端口
ip[0]=0;
// while(1)
// {
// key=atk_8266_get_keynum(0,180);
// if(key)
// {
// if(key<12)
// {
// if(iplen<15)
// {
// ip[iplen++]=kbd_tbl[key-1][0];
// }
// }else
// {
// if(key==13)if(iplen)iplen--; //删除
// if(key==14&&iplen)break; //确认连接
// if(key==15){res=1;break;} //取消连接
// }
// ip[iplen]=0;
// LCD_Fill(30+56,110,239,110+16,WHITE);
// Show_Str(30+56,110,200,16,ip,16,0); //显示IP地址
// }
// timex++;
// if(timex==20)
// {
// timex=0;
// LED0=!LED0;
// }
// delay_ms(10);
// atk_8266_at_response(1);//WIFI模块发过来的数据,及时上传给电脑
//
// }
/* 自己加的*/
ip[0]='1';
ip[1]='9';
ip[2]='2';
ip[3]='.';
ip[4]='1';
ip[5]='6';
ip[6]='8';
ip[7]='.';
ip[8]='1';
ip[9]='.';
ip[10]='8';
ip[11]='5';
ip[12]=0x00;
ip[13]=0xcd;
ip[14]=0x00;
ip[15]=0x08;
/*自己加的*/
return res;
}
|