STM32 驱动 ESP8266 WIFI 模块

目录

1. 模块引脚

2. 测试模块是否正常

3. AT指令

4. ESP8266三种工作模式

5. 配置WIFI模块

6. STM32驱动WIFI模块


拿到一个野火的esp8266模块,驱一下试试。

1. 模块引脚

esp8266模块引脚图

在我们使用中只使用1、2、4、6、7、8引脚即可。3、4引脚是刷新固件库时候使用。从引脚图中可以看到ESP8266主要使用USART来通信。模块默认波特率为9600.

2. 测试模块是否正常

接线如下:

测试模块引脚连线
WF-ESP8266模块串口
VCC3V3
GNDGND
CH_PD3V3
UTXDRXD
URXDTXD

 

连接之后,打开串口调试助手,发送AT,回应OK。说明模块正常。

给模块上电之后,打开手机的“WALN”,扫描wifi信号,如果能扫描到模块发出的热点,说明模块基本正常。该热点一般是“OPEN”型的,也就是无密码的,用户可 连连看。模块断电后,该热点就消失。

3. AT指令

说到ESP8266 WIFI模块,就不得不提他的AT指令了。接下来了解AT指令。

4. ESP8266三种工作模式

ESP8266共有三种工作模式,分别是 

1.Station (客户端模式)
2.AP (接入点模式)
3.Station+AP (两种模式共存)
就是说模块可以当成一个设备( client)连接区域网内的路由,也可以设置成是一个路由( sever),
也可以既作为局域网里面的 client 同时又是其他 client 的 sever。

5. 配置WIFI模块

1.AP(sever)模式与手机通信

1.输入: AT+CWMODE=2
响应: OK
说明:指令原型为: AT+CWMODE=<mode>;其中 <mode>:1-Station 模式, 2-AP模式, 3-AP 兼
Station 模式。
2.输入: AT+RST
响应: OK
说明:配置好模式后需要重启生效。
3.输入: AT+CWMODE?
响应: +CWMODE:2
 OK
说明:这条指令可以不要,这是查询当前模式的指令,模式返回是 2,说明是 AP模式。
4.输入: AT+CWSAP="ESP8266","0123456789",11,0
响应: OK
说明:指令原型为: AT+ CWSAP=<ssid>,<pwd>,<chl>,
<ecn>;其中 <ssid>:字符串参数,接入点名称; <pwd>:字符串参数,密码最长 64 字节, ASCII;
<chl>:通道号; < ecn
>:0-OPEN,1-WEP, 2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然后现在就可以在你的手机或者是电脑通过无线网卡连接到 ESP8266上了。
5.输入: AT+CIPMUX=1
响应: OK
说明:开启多连接模式,因为只有在开启多连接模式的时候才能开启服务器模式。注意:透传只
能在单连接模式下进行。
6.输入: AT+CIPSERVER=1,8080
响应: OK
说明:设置端口为 8080。
最后,我们就可以通过网络调试助手来通过“ TCP Client”模式下添加“IP:192.168.4.1(模块默认的 IP) ,端口 8080(第 6 步设置的)”值得一提的是,
ESP8266当服务器的时候,客户端如果没有数据传输,隔一段时间会自动断开连接,可通过
AT+CIPSTO=<time>命令设置超时时间(说明: <time>:服务器超时时间, 0~2880,单位为 s)。
7.输入 AT+CIPSEND=0,10
返回: OK
 >
输入字符串,就可以发到手机上了 ,0 是通道号, 10 是数据长度。

2. Station(client)模式与电脑通信

1.输入: AT+CWMODE=1
响应: OK
说明:指令原型为: AT+CWMODE=<mode>;其中 <mode>:1-Station 模式, 2-AP模式, 3-AP 兼
Station 模式。
2.输入: AT+RST
响应: OK
说明:配置好模式后需要重启生效。
3.输入: AT+CWMODE?
响应: +CWMODE:1
 OK
说明:这条指令可以不要,这是查询当前模式的指令,模式返回是 1,说明是 Station 模式。再看
电脑或者手机 wifi 连接窗口,刚才的热点已经消失了,说明已经把模式转换为了客户端模式。
4.输入: AT+CWLAP
响应: +CWLAP:(4,"呭摜 ",-84,"78:eb:14:f3:9c:1a",1)
+CWLAP:(4,"509509",-53,"20:dc:e6:d0:3b:3c",1)
+CWLAP:(4,"bing2014",-73,"ec:88:8f:63:40:d4",1)
+CWLAP:(3,"瀵嗙爜鏄 ?883125",-80,"7e:2f:68:6b:df:5e",11)
OK
说明:可以让模块搜索周围的信号了,列出可以连接的热点(中文显示为乱码)。
5.输入: AT+CWJAP="huawei11","guaizaiguaizai"
响应: OK
说明:指令原型为: AT+CWJAP=<ssid>,<pwd>),ssid 就是 wifi 的名字, pwd 就是 wifi 的密码
6.输入: AT+CWJAP?
响应: +CWJAP:”huawei11”
 OK
说明:这条指令可以不要,这是查询一下当前连接的 AP。
7.输入: AT+CIFSR
响应: 192.168.1.104
 OK
8.输入: AT+CIPSTA_CUR=”192.168.6.100”,"192.168.6.1","255.255.255.0"
响应: OK
说明:这条指令可以不要,这是分配固定 ip。
说明:通过路由器查看下模块的 IP 地址。如果模块之前我们设置成了 AP 和 Station 共存模式,则会出现两个IP,上面的 APIP是作为无线 AP的 IP 地址。下面的 STAIP是它作为客户端从路由器获取到的 IP地址。
ESP8266是有寄存器的,所以即使重启连接信息也不会丢失,重启后再查询,发现会自动连接。
使用电脑 ping 一下这个 ip,ip 是可以 ping 通的,说明连接正常。
C:\Users\Administrator>ping 192.168.1.104
正在 Ping 192.168.1.104 具有 32 字节的数据 :
来自 192.168.1.104 的回复 : 字节 =32 时间 =65ms TTL=255
来自 192.168.1.104 的回复 : 字节 =32 时间 =95ms TTL=255
来自 192.168.1.104 的回复 : 字节 =32 时间 =102ms TTL=255
来自 192.168.1.104 的回复 : 字节 =32 时间 =18ms TTL=255 
192.168.1.104 的 Ping 统计信息 :
数据包 : 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失 ),
往返行程的估计时间 (以毫秒为单位 ):
最短 = 18ms,最长 = 102ms,平均 = 70ms


我们用来调试的这台电脑(电脑也需连接同一个路由器)上建立一个 TCP服务器,然后
用我们刚刚连接到路由器的 ESP8266模块连接到我们建立的这个 TCP服务器上,然后在这个模块
与服务器之间转输数据。用到的工具是网络助手 NetAssist.exe,运行后在网络协议类型: TCP
Server ,然后点“连接”按扭,成为一台 TCP服务器。

 9.输入: AT+CIPSTART="TCP","192.168.1.100",8080
响应: CONNECT
 OK
说明: 192.168.1.100 为服务器 IP 地址; 8080 为端口。
10.输入: AT+CIPSEND=4
响应: OK
说明:意思是发送四个字节的数据。
11.输入: ABCD 
响应: SEND OK
说明: NetAssist 会收到 ABCD四个字母。
12.把网络助手的“连接对象”选择成我们的模块 IP 地址,在下面输入 :CDEFG,点发送,会在串口工具
收到 +IPD,5:CDEFG。意思是接收到的数据长度为 5 个字节, CDEFG为数据内容

3、Station(client)模式下与手机通信

1.输入: AT+CWMODE=3
响应: OK
说明:指令原型为: AT+CWMODE=<mode>;其中 <mode>:1-Station 模式, 2-AP模式, 3-AP 兼
Station 模式。
2.输入: AT+RST
响应: OK
说明:配置好模式后需要重启生效。
3.输入: AT+CWMODE?
响应: +CWMODE:3
 OK
说明:这条指令可以不要。
4.输入: AT+CWSAP="ESP8266","0123456789",11,0 
响应: OK
说明:指令原型为: AT+ CWSAP=<ssid>,<pwd>,<chl>,
<ecn>;其中 <ssid>:字符串参数,接入点名称; <pwd>:字符串参数,密码最长 64 字节, ASCII;
<chl>:通道号; < ecn
>:0-OPEN,1-WEP, 2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK。
然后现在就可以在你的手机或者是电脑通过无线网卡连接到 ESP8266上了。
打开手机上的有人网络助手, TCP server→配置→激活→能看到此时手机的 IP 和端口号,要记下,
下面要用。
5.输入: AT+CIPMODE=1
响应: OK
说明:开启透传模式。
6.输入: AT+CIPMUX=0
响应: OK
说明:开启单路模式。
 7.输入: AT+CIPSTART="TCP","192.168.4.2",8080
响应: CONNECT
 OK
说明: 192.168.4.2 为服务器 IP 地址; 8080 为端口。填刚才记下的手机 IP 和端口号
这时手机已经能向模块发信息了,但模块不能发。
8.输入: AT+CIPSEND
响应: OK
说明: ESP8266发送数据至手机。

至此,三种模式已经配置完成。

6. STM32驱动WIFI模块

我使用STM32F103C8T6 ,调整野火的例程。直接下载使用不了,自己改了一部分。

//ESP8266 与 STM32F103C8T6 引脚配置

STM32 ----  WIFI

PA0   ----  CH-PD
PA1   ----  RST
PA2   ----  URXD
PA3   ----  UTXD
3V3   ----  VCC
GND   ----  GND

工程打包

链接: https://pan.baidu.com/s/17FwjnmaQOtSnuv2q7XDRVQ

提取码: ftfn

串口调试助手

链接:https://pan.baidu.com/s/1weXPIcQ9D7WX4hIuMY1Rsw 
提取码:auku

 

  • 36
    点赞
  • 254
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
引用\[2\]中提到了如何在STM32中使用ESP8266 WiFi模块。首先,需要选择一个适合的核心板,如F103C8T6,并添加一个ESP8266 WiFi模块。此外,还需要一个USB-TTL模块用于打印串口数据。然后,可以使用相关的AT指令来配置和控制ESP8266模块。例如,可以使用AT指令查询模块是否正常工作(AT),进行模块复位(AT+RST),恢复出厂设置(AT+RESTORE),设置WiFi模块的模式(AT+CWMODE=1),设置模块为单路连接模式(AT+CIPMUX=0),连接网络(AT+CWJAP="WIFI名称","密码"),连接TCP服务器(AT+CIPSTART="TCP","192.168.666",80),开启透传模式(AT+CIPMODE=1),开始发送数据(AT+CIPSEND),退出透传模式(+++)等。\[2\] 此外,还可以参考\[3\]中的博客,其中提供了一些宏定义和函数声明,如ENUM_Net_ModeTypeDef、ENUM_NetPro_TypeDef、ENUM_ID_NO_TypeDef等。还提供了一些函数,如cmdAT、testAT、ESP8266_DHCP_CUR、ESP8266_Net_Mode_Choose、ESP8266_JoinAP、ESP8266_Enable_MultipleId、ESP8266_Link_Server、ESP8266_UnvarnishSend等,这些函数可以用于配置和控制ESP8266模块。\[3\] 综上所述,要在STM32中使用ESP8266 WiFi模块,可以选择适合的核心板和ESP8266模块,并使用相关的AT指令和函数进行配置和控制。 #### 引用[.reference_title] - *1* *3* [STM32-连接wifi模块(esp8266)](https://blog.csdn.net/jx5631833/article/details/126371579)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【STM32训练—WiFi模块】第一篇、STM32驱动ESP8266WiFi模块获取网络时间](https://blog.csdn.net/Learning1232/article/details/127678792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guaizaiguaizai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值