STM32连接WIFI 您所在的位置:网站首页 小米wifi密码修改的操作流程图是什么 STM32连接WIFI

STM32连接WIFI

#STM32连接WIFI| 来源: 网络整理| 查看: 265

1.ESP8266 WIFI模块初解?

   ESP8266 是一种采用串口与 MCU(或其他串口设备)通信,内置 TCP/IP协议栈,能够实现串口与 WIFI 之间的转换的模块。该模块只需要简单的串口配置,便可通过网络(WIFI)传输自己的数据,同时支持多种模式的数据传输方案。

2.ESP8266 WIFI模块三种模式

   该模块支持三种数据传输模式,即:串口转WIFI STA模式、串口转AP模式和WIFI STA+WIFI AP共存模式。同时每种模式又包含三种子模式,即TCP服务器、TCP客户端和UDP模式。从而方便根据自己实际情况构建符合自己产品的数据传输方案,实现互联网传输数据。

3.小白入门AP模式运用

   这节先以AP模式运用入门来探究ESP8266模块使用。那何为AP模式呢? 简单来说就是ESP8266模块作为无线WIFI的热点,从而允许其他设备(如手机、电脑)搜索到模块的WIFI名字,再输入对应的WIFI密码,从而连接到ESP8266模块,便可实现手机等设备与ESP8266模块之间的无线(WIFI)数据互传。

3.1资源环境:

 ESP8266 WIFI模块一个

 STM32开发板(本例程采用STM32F103ZET6开发板)

 手机安装网络调试助手

3.2 ESP82266与开发板引脚连接说明:

ESP82266   开发板引脚

VCC    ------    5V

GND   ------    GND

TXD    ------    PB11

RXD    ------    PB10

RST    ------     PA4(可不接)

IO_0   ------     PA15(可不接)

3.3 AP模式基本配置说明:

TCP 服务器配置:

TCP 客户端配置

UDP模式配置

3.4具体操作说明:

3.4.1 下载程序到开发板,开机进入如下初始界面,先从EEPROM 24C02中读取上一次配置的wifi的用户名和密码,同时加载显示wifi模块一些版本信息:

部分代码:

AT24CXX_Read(WIFIAPSSIDADDR,(u8*)wifiap_ssid,strlen((const char*)wifiap_ssid)); //从24c02读取esp8266 ssid AT24CXX_Read(WIFIAPPASIDADDR,(u8*)wifiap_password,strlen((const char*)wifiap_password)); //从24c02读取esp8266密码 void atk_8266_msg_show(u16 x,u16 y,u8 wanip) { u8 *p,*p1,*p2; p=mymalloc(SRAMIN,32); //申请32字节内存 p1=mymalloc(SRAMIN,32); //申请32字节内存 p2=mymalloc(SRAMIN,32); //申请32字节内存 POINT_COLOR=BLUE; atk_8266_send_cmd("AT+CWMODE=2","OK",20); atk_8266_send_cmd("AT+RST","OK",20); delay_ms(1000);//延时4s等待模块重启 delay_ms(1000);// delay_ms(1000); delay_ms(1000); sprintf((char*)p,"AT+CWSAP=\"%s\",\"%s\",1,4",wifiap_ssid,wifiap_password); //配置模块AP模式无线参数 atk_8266_send_cmd(p,"OK",1000); if(wanip==0)//全更新 { atk_8266_send_cmd("AT+GMR","OK",20); //获取固件版本号 p=atk_8266_check_cmd("SDK version:"); Show_Str(x,y,240,24,"固件版本:",24,0);Show_Str(x+172,y,240,24,p,24,0); atk_8266_send_cmd("AT+CWMODE?","+CWMODE:",20); //获取网络模式 p=atk_8266_check_cmd(":"); Show_Str(x,y+30,240,24,"网络模式:",24,0);Show_Str(x+172,y+30,240,24,(u8*)ATK_ESP8266_CWMODE_TBL[*(p+1)-'1'],24,0); atk_8266_send_cmd("AT+CWSAP?","+CWSAP:",20); //获取wifi配置 p=atk_8266_check_cmd("\""); p1=(u8*)strstr((const char*)(p+1),"\""); p2=p1; *p1=0; Show_Str(x,y+60,240,24,"SSID号:",24,0);Show_Str(x+172,y+60,240,24,p+1,24,0); p=(u8*)strstr((const char*)(p2+1),"\""); p1=(u8*)strstr((const char*)(p+1),"\""); p2=p1; *p1=0; Show_Str(x,y+90,240,24,"密码:",24,0);Show_Str(x+172,y+90,240,24,p+1,24,0); p=(u8*)strstr((const char*)(p2+1),","); p1=(u8*)strstr((const char*)(p+1),","); *p1=0; Show_Str(x,y+120,240,24,"通道号:",24,0);Show_Str(x+172,y+120,240,24,p+1,24,0); Show_Str(x,y+150,240,24,"加密方式:",24,0);Show_Str(x+172,y+150,240,24,(u8*)ATK_ESP8266_ECN_TBL[*(p1+1)-'0'],24,0); } myfree(SRAMIN,p); //释放内存 myfree(SRAMIN,p1); //释放内存 myfree(SRAMIN,p2); //释放内存 }

3.4.2 若想更改对应的ssid或密码,则点击修改,弹出键盘,输入自己设定的ssid或密码,点击完成即可保存:

部分代码:

void esp8266_set(u16 keyx,u16 keyy,u16 contentx,u16 contenty,u8 *content) { u8 key; u8 len=0; //内容长度 atk_8266_load_keyboard(keyx,keyy,0); //显示键盘 while(1) { key=atk_8266_get_keynum(keyx,keyy); if(key) { if(key==30) { keybodsel=!keybodsel; atk_8266_load_keyboard(keyx,keyy,keybodsel); } if(key==39) { keybodsel=2; atk_8266_load_keyboard(keyx,keyy,keybodsel); } if(key


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有