STM32单片机和ESP8266模块调试过程记录

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

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值