const u8 TEXT_Buffer[]={"192.168.43.120"};
#define SIZE sizeof(TEXT_Buffer) //数组长度
#define FLASH_SAVE_ADDR 0X08031000 //设置FLASH 保存地址(必须为偶数,且其值要大于本代码所占用FLASH的大小+0X08000000)
u8 netpro=0; //网络模式
u8 atk_8266_wifista_test(void)
{
u8 datatemp[SIZE];
u8 ipbuf[16]; //IP缓存
u8 *p;
p=mymalloc(32); //申请32字节内存
/****************************链接到112的函数**********************************************/
atk_8266_send_cmd("AT+CWMODE=1","OK",50); //设置WIFI STA模式
atk_8266_send_cmd("AT+RST","OK",20); //DHCP服务器关闭(仅AP模式有效)
delay_ms(1000); //延时3S等待重启成功
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
Show_Str(40,55,200,16,"w2222!",16,0);
//设置连接到的WIFI网络名称/加密方式/密码,这几个参数需要根据您自己的路由器设置进行修改!!
sprintf((char*)p,"AT+CWJAP=\"%s\",\"%s\"",wifista_ssid,wifista_password);//设置无线参数:ssid,密码
while(atk_8266_send_cmd(p,"WIFI GOT IP",300)); //连接目标路由器,并且获得IP
delay_ms(1000);
/****************************************配置服务器**************************************************/*
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)TEXT_Buffer,SIZE);
STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)datatemp,SIZE); //问题所在
atk_8266_send_cmd("AT+CIPMUX=0","OK",20); //0:单连接,1:多连接
sprintf((char*)p,"AT+CIPSTART=\"TCP\",\"%s\",%s","192.168.43.120",(u8*)portnum); //配置目标TCP服务器
while(atk_8266_send_cmd(p,"OK",200));
atk_8266_send_cmd("AT+CIPMODE=1","OK",200); //传输模式为:透传
Show_Str(40,55,200,16,"3333!",16,0);
/**************************************************************************************************/*
LCD_Clear(WHITE);
POINT_COLOR=RED;
// Show_Str(120+30,80,200,12,(u8*)ATK_ESP8266_WORKMODE_TBL[netpro],12,0); //连接状态
USART2_RX_STA=0;
atk_8266_quit_trans();
atk_8266_send_cmd("AT+CIPSEND","OK",20); //开始透传
myfree(p); //释放内存
Show_Str(40,55,200,16,"55555!!!",16,0);
return 1;
}
本人测试不使用flsh去配置wifi就可以正常使用执行以后的程序,但是读取了flash之后就无法跳出循环卡在了显示 “55555!!!”那去了。求教这是为什么,怎么解决
|