STM32与ESP8266-01S模块集成指南
调试相关AT指令
发送AT指令时,需要勾选发送新行,代码中为\r\n(\r:回车\n:换行)
默认波特率为115200
1、AT 测试AT启动
2、AT+RST 重启模块
3、AT+RESTORE 恢复出厂设置
恢复出厂设置后,通信波特率为115200
4、AT+UART=9600,8,1,0,0设置波特率
9600:波特率、8:数据位、1:停止位、0:无校验位、0:不使用流控
5、ATEx 关闭/开启回显
ATE1 开启回显、ATE0 关闭回显
6、AT+CIPSTATUS 查询网络连接信息
stat:接口状态
+CIPSTATUS:连接号,协议,远端IP,远端端口号,本地端口号,模式
单链接TCP Client
单链接TCP Client就是用ESP8266建立一个TCP协议的客户端
相关AT指令
1、AT+CWMODE Wi-Fi模式
AT+CWMODE_CUR? 查询当前的Wi-Fi模式
AT+CWMODE_CUR=x 设置当前的Wi-Fi模式
x可取1,2,3,1代表STA(客户端),2代表AP(路由器),3代表两种都可以
设置Wi-Fi模式有两种后缀:CUR代表复位后设置不保存,DEF代表复位后设置保存
2、AT+CWJAP 设置要连接的AP的信息
AT+CWJAP_CUR? 查询当前设置的要连接的AP的信息
AT+CWJAP_CUR=<ssid>,<pwd>,[<bssid>],[,<pci_en>] 设置要连接的AP的信息
ssid:要连接的wifi名称
pwd:wifi的密码
后两个为可选参数,不设置
3、AT+CIFSR 查询ESP8266设备的IP地址
APIP:ESP8266作为AP时的地址
APMAC:ESP8266作为AP时的MAC地址
STAIP:ESP8266作为STA时的地址(由连接的AP分配)
STAMAC:ESP8266作为STA时的MAC地址(可以自己设置)
4、PC机建立服务器
将PC机与ESP8266连接到相同的热点上。上述ESP8266连接的为OPPO K7,这里PC机也连接到OPPO K7
在windows下打开命令终端,输入ipconfig查询无线网的IP地址
之后打开网络调试助手,设置为TCP Server,选择上面查到的IP,设置端口号
至此,PC端建立服务器完成
5、AT+CIPSTART 建立连接
AT+CIPSTART=<type><remote IP><remote port>[,<TCP keep alive>]
type:连接类型,可为TCP,UDP,SSL
remote IP:远端IP(4中查询的IP)
remote port:远端端口号(4中设置的端口号)
后面参数为可选,不设置
6、PC向ESP8266发送信息
直接通过服务端,即可透传
+IPD的格式为+IPD,数据长度,数据内容
7、AT+CIPSEND 发送数据
在单连接中,AT+CIPSEND=x,其中x代表之后要发的数据的长度。
8、AT+CIPMODE 设置传输模式
AT+CIPMODE=1 开启透传模式,只有在TCP单连接和UDP固定远端时可使用
AT+CIPMODE=0 普通传输模式,需要指定发送的数据长度
9、AT+CIPSEND 开始传输数据,ESP8266与PC进行透明传输
该指令与步骤7是一个指令,为了方便查找,这里再次列出一次,主要叙述透明传输时的使用
在透明传输时,每个包最大2048个字节 或者 每个包之间的间隔要为20ms
退出透传时,发送+++,注意不要勾选发送新行
退出透传后,之后需间隔1s才可再次发送指令,发送指令需要把发送新行勾选上
10、AT+CIPCLOSE 关闭连接
设置步骤
设置步骤中的AT指令顺序,与上述的AT指令顺序一致。
1、AT+CWMODE=3 模式设置为STA+AP,无后缀代表复位后设置保存,与DEF后缀一致
2、AT+CWJAP=“wifi名称”,"wifi密码"
3、AT+CIFSR
4、PC连接上ESP8266连接的AP(PC与ESP8266连接同一个热点),建立TCP服务器
5、AT+CIPSTART
6、PC向ESP8266发送信息
备注:这里突然调不通了,改了一下端口号8880,ESP8266重复第5步连接服务器
7、AT+CIPSEND=7 ESP8266向PC发送信息
透传步骤
同样操作上面的1~6步骤后,7步骤不再使用,使用的是一下的透明传输格式
8、AT+CIPMODE=1 使能透明传输
9、AT+CIPSEND 开始传输数据,ESP8266与PC进行透明传输
10、AT+CIPCLOSE 关闭连接
多链接TCP Server(未调通)
相关AT指令
3、AT+CIPSERVER 建立TCP服务器
AT+CIPSERVER=<mode>[,<port>]
只有在多链接下才可进行服务器的建立
创建TCP服务器后,自动进行监听
当有TCP客户端接入后,自动占用一个连接ID
设置步骤
1、AT+CWMODE=3 模式设置为STA+AP,无后缀代表复位后设置保存,与DEF后缀一致
2、AT+CWJAP=“wifi名称”,"wifi密码"
3、AT+CIFSR
4、AT+CIPMUX=1 使能多连接
5、AT+CIPSERVER=1,8000 建立TCP服务器
6、PC连接上ESP8266连接的AP(PC与ESP8266连接同一个热点),建立TCP客户端
7、PC机向ESP8266发送数据
8、AT+CIPSEND=0,4 ESP8266向PC机发送数据
9、AT+CIPCLOSE=5 断开全部连接
固定远端的UDP通信
相关AT指令
1、AT+CWMODE Wi-Fi模式
AT+CWMODE_CUR? 查询当前的Wi-Fi模式
AT+CWMODE_CUR=x 设置当前的Wi-Fi模式
x可取1,2,3,1代表STA(客户端),2代表AP(路由器),3代表两种都可以
设置Wi-Fi模式有两种后缀:CUR代表复位后设置不保存,DEF代表复位后设置保存
2、AT+CWJAP 设置要连接的AP的信息
AT+CWJAP_CUR? 查询当前设置的要连接的AP的信息
AT+CWJAP_CUR=<ssid>,<pwd>,[<bssid>],[,<pci_en>] 设置要连接的AP的信息
ssid:要连接的wifi名称
pwd:wifi的密码
后两个为可选参数,不设置
3、AT+CIFSR 查询ESP8266设备的IP地址
APIP:ESP8266作为AP时的地址
APMAC:ESP8266作为AP时的MAC地址
STAIP:ESP8266作为STA时的地址(由连接的AP分配)
STAMAC:ESP8266作为STA时的MAC地址(可以自己设置)
4、PC机建立服务器
将PC机与ESP8266连接到相同的热点上。上述ESP8266连接的为OPPO K7,这里PC机也连接到OPPO K7
在windows下打开命令终端,输入ipconfig查询无线网的IP地址
之后打开网络调试助手,设置为UDP,选择上面查到的IP,设置端口号
5、AT+CIPMUX 设置单连接还是多连接
AT+CIPMUX=x,x的取值可以为0,1
0:单连接
1:多连接
6、AT+CIPSTART 创建UDP传输,设置是否改变远端
AT+CIPSTART=4,"UDP","远端IP",远端端口号,本地端口号,0
4:分配连接号为4,可取0~4,与之后ESP8266向PC发送消息有关
0:UDP的传输属性,透传必须为0,可取值为0,1,2 含义如下
本地端口号:这里是设置本地的端口号
7、PC向ESP8266发送信息
PC设置好目标的IP和目标的端口号,输入数据发送即可。
目标IP是AT+CIFSR查询出来的STAIP(步骤3)
端口号是AT+CIPSTART设置的ESP8266的本地端口号(步骤6)
+IPD的格式为+IPD,esp8266连接号(步骤6),数据长度,数据内容
8、AT+CIPSEND ESP8266向PC发送信息
AT+CIPSEND=4,7
4:设置的连接号(步骤6)
7:此次要发送数据的字节数
9、AT+CIPCLOSE=4 断开连接
AT+CIPCLOSE=4 断开连接号为4的连接
若连接号设置为5,则断开全部连接
10、AT+CIPMODE 设置传输模式
AT+CIPMODE=1 开启透传模式,只有在TCP单连接和UDP固定远端时可使用
AT+CIPMODE=0 普通传输模式,需要指定发送的数据长度
11、AT+CIPSEND 开始传输数据,ESP8266与PC进行透明传输
该指令与步骤7是一个指令,为了方便查找,这里再次列出一次,主要叙述透明传输时的使用
在透明传输时,每个包最大2048个字节 或者 每个包之间的间隔要为20ms
退出透传时,发送+++,注意不要勾选发送新行
退出透传后,之后需间隔1s才可再次发送指令,发送指令需要把发送新行勾选上
12、AT+CIPCLOSE 关闭连接
设置步骤
1、AT+CWMODE=3 模式设置为STA+AP,无后缀代表复位后设置保存,与DEF后缀一致
2、AT+CWJAP=“wifi名称”,"wifi密码"
3、AT+CIFSR
4、PC连接上ESP8266连接的AP(PC与ESP8266连接同一个热点),建立UDP设备
5、AT+CIPMUX=1
6、AT+CIPSTART
7、PC向ESP8266发送信息
8、AT+CIPSEND=4,7 ESP8266向PC发送信息
9、AT+CIPCLOSE=4 断开连接
透传步骤
同样操作上面的1~6步骤后,7步骤不再使用,使用的是一下的透明传输格式
5步骤的AT+CIPMUX=1改为AT+CIPMUX=0(单连接)
6步骤的AT+CIPSTART不用加入连接号,因为是单连接
10、AT+CIPMODE=1 使能透明传输
11、AT+CIPSEND 开始传输数据,ESP8266与PC进行透明传输
12、AT+CIPCLOSE 关闭连接
远端可变的UDP通信
相关AT指令
1、AT+CWMODE Wi-Fi模式
AT+CWMODE_CUR? 查询当前的Wi-Fi模式
AT+CWMODE_CUR=x 设置当前的Wi-Fi模式
x可取1,2,3,1代表STA(客户端),2代表AP(路由器),3代表两种都可以
设置Wi-Fi模式有两种后缀:CUR代表复位后设置不保存,DEF代表复位后设置保存
2、AT+CWJAP 设置要连接的AP的信息
AT+CWJAP_CUR? 查询当前设置的要连接的AP的信息
AT+CWJAP_CUR=<ssid>,<pwd>,[<bssid>],[,<pci_en>] 设置要连接的AP的信息
ssid:要连接的wifi名称
pwd:wifi的密码
后两个为可选参数,不设置
3、AT+CIFSR 查询ESP8266设备的IP地址
APIP:ESP8266作为AP时的地址
APMAC:ESP8266作为AP时的MAC地址
STAIP:ESP8266作为STA时的地址(由连接的AP分配)
STAMAC:ESP8266作为STA时的MAC地址(可以自己设置)
4、PC机建立服务器
将PC机与ESP8266连接到相同的热点上。上述ESP8266连接的为OPPO K7,这里PC机也连接到OPPO K7
在windows下打开命令终端,输入ipconfig查询无线网的IP地址
之后打开网络调试助手,设置为UDP,选择上面查到的IP,设置端口号。
建立两个UDP设备,方便后面的UDP通信调试
5、AT+CIPMUX 设置单连接还是多连接
AT+CIPMUX=x,x的取值可以为0,1
0:单连接
1:多连接
6、AT+CIPSTART 创建UDP传输,设置是否改变远端
AT+CIPSTART="UDP","远端IP",远端端口号,本地端口号,2
2:UDP的传输属性,远端可变时选择2,可取值为0,1,2 含义如下
本地端口号:这里是设置本地的端口号
7、AT+CIPSEND ESP8266向PC发送信息
AT+CIPSEND=7,"远端IP",远端端口号
7:数据长度为7
8、PC向ESP8266发送消息
设置好目标IP,目标端口号直接就可以发送
9、AT+CIPCLOSE 关闭连接
设置步骤
1、AT+CWMODE=3 模式设置为STA+AP,无后缀代表复位后设置保存,与DEF后缀一致
2、AT+CWJAP=“wifi名称”,"wifi密码"
3、AT+CIFSR
4、PC连接上ESP8266连接的AP(PC与ESP8266连接同一个热点),建立2个UDP设备
5、AT+CIPMUX=0
6、AT+CIPSTART
7、AT+CIPSEND=7,"远端IP",远端端口号 ESP8266向PC发送信息
8、PC向ESP8266发送消息
9、AT+CIPCLOSE 关闭连接
作者:荣世蓥