STM32第十八天 ESP8266-01S和电脑实现串口通信

一: ESP和电脑实现串口通信

  1. 配置 WiFi 模式
    AT+CWMODE=3 // softAP+station mode
    响应 :
    OK
  2. 连接路路由器器
    AT+CWJAP="SSID","password" // SSID and password of router
    响应 :
    OK
  3. 查询 ESP8266 设备的 IP 地址
    AT+CIFSR
    响应 :
    +CIFSR:APIP,"192.168.4.1"
    +CIFSR:APMAC,"1a:fe:34:a5:8d:c6"
    +CIFSR:STAIP,"192.168.3.133"
    +CIFSR:STAMAC,"18:fe:34:a5:8d:c6"
    OK
  4. PC 与 ESP8266 设备连接同⼀一路路由器器,在 PC 端使⽤用⽹网络调试⼯工具,建⽴立⼀一个 TCP 服
    务器器。
  • 假设,PC 创建的服务器器 IP 地址为 192.168.3.116,端⼝口为 8000。
  1. ESP8266 设备作为 TCP client 连接到上述服务器器
    AT+CIPSTART="TCP","192.168.3.116",8000
    响应 :
    OK
  2. ESP8266 设备向服务器器发送数据
    AT+CIPSEND=4 // set date length which will be sent, such as 4 bytes
    >test // enter the data, no CR
    响应 :
    Recv 4 bytes
    SEND OK
  3. 当 ESP8266 设备接收到服务器器发来的数据,将提示如下信息:
    +IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx
    注意:
    发送数据时,如果输⼊入的字节数超过了了设置⻓长度(n):
    -系统将提示busy,并发送数据的前
    n
    个字节,发送完成后响应SEND OK
    *-*超出⻓长度的部分数据被认为是⽆无效数据,不不被接受。

小总结:

基础 AT 指令

指令 功能 示例 响应
AT 测试模块连通性 AT OK
AT+RST 重启模块 AT+RST OK + 重启日志
AT+GMR 查询固件版本 AT+GMR AT version:x.x.x SDK version:x.x.x
AT+UART 设置串口参数 AT+UART=115200,8,1,0,0 (波特率,数据位,停止位,校验,流控) OK

WiFi 配置指令

指令 功能 示例 响应
AT+CWMODE 设置 WiFi 模式 AT+CWMODE=3 (1=STA, 2=AP, 3=STA+AP) OK
AT+CWJAP 连接路由器 AT+CWJAP="SSID","password" WIFI CONNECTED WIFI GOT IP OK
AT+CWLAP 扫描附近 WiFi AT+CWLAP +CWLAP:(ecn,ssid,rssi,mac) OK
AT+CIFSR 查询 IP 地址 AT+CIFSR +CIFSR:STAIP,"192.168.1.100" +CIFSR:APIP,"192.168.4.1"

TCP/IP 通信指令

指令 功能 示例 响应
AT+CIPSTATUS 查询连接状态 AT+CIPSTATUS STATUS:<状态码> (2=已连接WiFi,3=TCP连接)
AT+CIPSTART 建立 TCP/UDP 连接 AT+CIPSTART="TCP","192.168.1.116",8000 CONNECT OK
AT+CIPSEND 发送数据 AT+CIPSEND=4 → 输入 test SEND OK
AT+CIPCLOSE 关闭连接 AT+CIPCLOSE CLOSED
+IPD 接收数据 (自动触发) - +IPD,5:hello (收到5字节数据"hello")

多连接配置 (服务器模式)

指令 功能 示例 响应
AT+CIPMUX 设置多连接 AT+CIPMUX=1 (0=单连接,1=多连接) OK
AT+CIPSERVER 创建 TCP 服务器 AT+CIPSERVER=1,8080 (1=开启,端口8080) OK
AT+CIPSTO 设置超时时间 AT+CIPSTO=300 (300秒) OK

今日问题

为啥我选本地ip选了上面两个192.168.85.1和192.168.237.1使用AT+CIPSTART="TCP","192.168.237.1",8000

ERROR

CLOSED但选第三个192.168.83.120就可以成功

问题根本原因

  1. IP 地址类型差异

    IP 地址 类型 说明
    192.168.83.120 局域网 IP ESP8266 和 PC 在同一子网内,直接可达
    192.168.85.1 可能为虚拟网络 IP VMware/Hyper-V 等虚拟网卡地址
    192.168.237.1 可能为Docker/WSL2 IP 容器化环境的虚拟网桥地址
  2. 网络隔离机制

    • 虚拟网络(如 WSL2/Docker)默认与物理网络隔离

    • ESP8266 只能访问同一物理交换机下的设备 (即 192.168.83.x 网段)

虚拟 IP 连通性对比表

IP 地址 类型 是否可达 解决方案
192.168.83.120 物理网卡 ✅ 是 直接使用
192.168.237.1 WSL2 虚拟网卡 ❌ 否 配置端口转发
192.168.85.1 VMware 虚拟网卡 ❌ 否 切换为桥接模式
127.0.0.1 本地环回 ❌ 否 永远无法被 ESP8266 访问
相关推荐
LCMICRO-133108477462 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
逐步前行10 小时前
STM32_TIM_寄存器操作
stm32·单片机·嵌入式硬件
0南城逆流010 小时前
【STM32】知识点介绍七:PWM功能
stm32·单片机·嵌入式硬件
智者知已应修善业11 小时前
【51单片机独立按键控制数码管移动反向,2片74CH573/74CH273段和位,按键按下保持原状态】2023-3-25
经验分享·笔记·单片机·嵌入式硬件·算法·51单片机
dashizhi201511 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑
我是一棵无人问荆的小草11 小时前
单片机通电后延迟启动策略
单片机·嵌入式硬件
坏柠11 小时前
ESP32-S3 蓝牙 BLE 从零到一:广播、服务、特征,用一个智能灯的例子全讲透
嵌入式硬件
日更嵌入式的打工仔12 小时前
UART RX为什么要上拉
单片机
三佛科技-1873661339715 小时前
FT32F030F6AP7高性能32位RISC内核MCU解析(兼容STM32F030K6TP7)
stm32·单片机·嵌入式硬件
LCMICRO-1331084774615 小时前
长芯微LDC90810完全P2P替代ADC128D818,是一款八通道系统监控器,专为监控复杂系统状态而设计。
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换芯片adc