SciTech-ICEE-UART串口 WiFi模块 及 AT 指令: STM32代码 +【常用模块】ESP8266 WIFI串口通信模块使用
SciTech-ICEE-UART串口 WiFi模块 及 AT 指令: STM32代码 +【常用模块】ESP8266 WIFI串口通信模块使用
本文深入解析ESP8266 WiFi模块的工作原理及AT指令集,
详细介绍如何利用STM32单片机实现与ESP8266的串口通信,
包括硬件连接、软件配置及数据传输过程。这里涉及Howto将所有的物联网设备连接在一起。
- "透明"战略:
通过"模块化"将将WIFI有关知识Packaging在模块上,
使用户只要通过Interface,就可以很好的用上。 - ESP8266 WIFI串口通信模块 只是WIFI转串口的,
只要知道串口怎么编程使用就可以高效地用上。
WIFI模块的调试
准备工作
USB转TTL模块与ESP8266 WIFI模块的接线:
市面市场上的ESP8266版本大多数只是一些引脚布局不同。连接大同小异:
以官方ESP8266(两排8引脚)示例连接、

注意点:
- VCC最好选取5V的(尽管一些模块用3.3V的也能用)
在 "USB转TTL模块" 上, 有 3.3V 和 5V 两pins, 可作为VCC,但是常选取 5V 作为VCC。
因为一些模块选3.3V,可能会因为电压过低,而不断重启不停复位。 - UART串口 功能只要接 4个pins就行:
- 将串口WiFi模块接口上的 RXD、TXD、GND、VCC 分别和
对接的 "USB转TTL模块"的 TXD、RXD、GND、VCC 一一对应连接就行。 - 特别注意UART的收发是"交叉链接":
Transmitter 的 RXD与TXD, 分别和Receiver的 TXD与RXD 对接。即
ESP8266的 RXD(数据的接收端), 要连接 "USB转TTL模块" 的 TXD,
ESP8266的 TXD(数据的发送端), 要连接 "USB转TTL模块" 的 RXD。
- 将串口WiFi模块接口上的 RXD、TXD、GND、VCC 分别和
- 调试 "串口WIFI模块"
通过 "USB转TTL模块" 与电脑的USB接口连接上,
就可以使用 "PC串口调试应用" 调试 "串口WIFI模块"。
AT Commands(指令)
注意: "AT Commands" 是 "不区分大小写",都用 "CR回车、\n换行" 字符作为指令结束。
常用的AT指令:
| Command指令名 | Response响应 | 含义 |
|---|---|---|
| AT | OK | 测试指令 |
| AT+CWMODE= |
OK | 设置应用模式(需重启生效) |
| AT+CWMODE? | +CWMODE: |
获得当前应用模式 |
| AT+CWLAP | +CWLAP: |
返回目前的AP列表 |
| AT+CWJAP= |
OK | 加入某一AP |
| AT+CWJAP? | +CWJAP: |
返回当前加入的AP |
| AT+CWQAP | OK | 退出当前加入的AP |
| AT+CIPSTART= |
OK | 建立TCP/UDP连接 |
| AT+CIPMUX= |
OK | 是否启用多连接 |
| AT+CIPSEND= | OK | 发送数据 |
| AT+CIPMODE= |
OK | 是否进入透传模式 |
注释:
- ESP8266的应用模式:
ESP266支撑单AP模式、单STA模式 和 AP+STA混合模式。就是:- AP:可以将ESP8266作为Hotspot(热点,类似手机热点),可以让其他的设备连接上它;
- STA:可以连接上当前环境下的WIFI热点。
- 什么是透传模式?
透传,就是指 不必关心 "传送(wifi协议)的实现"。只要直接通过"模块收发数据":
先通过串口发数据,后通过串口收数据,开发的视角上,收发过程完全透明的。
对比地理解,就是:- 不开启透传模式:
在每次发送数据前,都必须先发送指令AT+CIPSEND=<param>,例如: - 开启了透传模式:
就不需要在每次发送数据前,都发送指令AT+CIPSEND=<param>,
只需要发送一次AT+CIPSEND,之后 "发送的所有内容" 全部当成数据。
如果要"改换指令",可以发送数据"+++(没换行字符)"通知"退出当前指令"。
注意:此时“+++”后面,不接“发送新行”!
- 不开启透传模式:
WIFI模块的使用
ESP8266常态使用顺序
这里的“常态”指的是:
ESP8266连接当前环境的热点,与服务器建立TCP 连接,传输数据。
| Seq. No. | Command | Note |
|---|---|---|
| 1 | AT+CWMODE=1 |
设置工作模式(STA模式) |
| 2 | AT+RST |
模块重启(生效工作模式) |
| 3 | AT+CWJAP="111","11111111" |
连接当前环境的WIFI热点(热点名,密码) |
| 4 | AT+CIPMUX=0 |
设置单路连接模式 |
| 5 | AT+CIPSTART="TCP","xxx.xxx.xxx.xxx",xxxx |
建立TCP连接 |
| 6 | AT+CIPMODE=1 |
开启透传模式 |
| 7 | AT+CIPSEND |
透传模式下,传输数据 |
| 8 | +++ |
退出透传模式 |
ESP8266的封装代码
- 与单片机的引脚连接:
ESP8266 与 USART3(引脚PB10、PB11)连接。 - 首先是USART的配置:
USART3 是 通过 "接收连续2个字符之间的时间差不大于10ms"
来判断及确定 "是不是一次连续的数据",
而 "10ms" 怎么定?是通过MCU Timer(定时器)确定的,
所以我们需要开启定时器: - 以上两步都完成后就可以向ESP8266传数据。
- main.c主程序。
完整项目链接
百度云盘链接: https://pan.baidu.com/s/1LKjJL06fHyt1O5p9Jxmbig 提取码: p8yn

浙公网安备 33010602011771号