0·说明:
我从网上看了别人的ESP8266模块的驱动,也下载到自己的板子上调试测试,发现没有问题,但是毕竟是别人的程序,自己用着不得心应手,所以我打算自己重新写一遍WiFi模块的驱动程序和应用程序,这篇文章也就是记录调试过程中遇到的问题和小心得的分享。希望大家积极指正,积极交流,如果有疑问或者需要指正的地方可以添加我的微信,sunkaiwz,备注CSDN,还有一些常用的WiFi模块相关资料,也可以添加我的微信,我可以分享给你。
WiFi模块的调试我主要分别从两个部分开始着手,AP主站模式和station从站模式。
1·AP主站模式:
1.1 AP模式操作步骤(命令的详细说明,请参考ESP8266常用AT指令集):
step-1:配置ESP8266为AP模式(即路由器模式,发送WiFi信号);
step-2:设置模块名称,格式为: AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn> ;
step-3:重启模块,使能配置的模式及模块名称、密码;
step-4:启动多连接模式(后期我打算连接5个从站,所以此处使用多连接模式);
step-5:配置端口号,模块开启服务器模式。
1.2 模块初始化参考例程:
void esp8266_init(void)
{
char temp_send_wifi[40] = {0};
//step-1:
pc_sendString("Set the WIFI mode ...\r\n"); //此函数将字符串发送至上位机,可不写。下雷同;
while(!esp8266_cmd("AT+CWMODE=2","OK","no change"));
//step-2: AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn>
sprintf(temp_send_wifi,"AT+CWSAP=\"%s\",\"%s\",1,3",ESP8266_ApSsid,ESP8266_ApPwd);
while(!esp8266_cmd(temp_send_wifi,"OK",0));
clr_string(temp_send_wifi); //清除缓存数组,为下次使用准备
//step-3:
pc_sendString("Reset the WIFI ...\r\n");
while(!esp8266_cmd("AT+RST",0,0));
delay_ms(2000);
clr_string(RxBuffer2);
//step-4:
pc_sendString("Set the link mode ...\r\n");
while(!esp8266_cmd("AT+CIPMUX=1","OK",0));
//step-5:
pc_sendString("Set the WIFI_Port ...\r\n");
sprintf(temp_send_wifi,"AT+CIPSERVER=1,%s",ESP8266_TcpServer_Port);
while(!esp8266_cmd(temp_send_wifi,"OK",0));
clr_string(temp_send_wifi);
}
1.3调试过程中易错点如下:
1.3.1·需要先设置工作模式和WiFi名称及其密码,然后需要重启模块;
1.3.2·重新启动模块之后需要设置端口和连接方式,否则连接错误;
1.3.3·设置WiFi名称及其密码时,名称和密码需要用双引号包含;
1.3.4·接收不确定长度数组时,需要对数组长度进行限制或者设置数组长度为足够长。否则容易进入硬件错误选项。
2·station从站模式:待更新20190401