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引脚)示例连接、
1000133158

注意点:

  1. VCC最好选取5V的(尽管一些模块用3.3V的也能用)
    在 "USB转TTL模块" 上, 有 3.3V 和 5V 两pins, 可作为VCC,但是常选取 5V 作为VCC。
    因为一些模块选3.3V,可能会因为电压过低,而不断重启不停复位。
  2. 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。
  3. 调试 "串口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 是否进入透传模式

注释:

  1. ESP8266的应用模式:
    ESP266支撑单AP模式、单STA模式 和 AP+STA混合模式。就是:
    • AP:可以将ESP8266作为Hotspot(热点,类似手机热点),可以让其他的设备连接上它;
    • STA:可以连接上当前环境下的WIFI热点。
  2. 什么是透传模式?
    透传,就是指 不必关心 "传送(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

posted @ 2026-09-05 00:42  abaelhe  阅读(23)  评论(0)    收藏  举报