当前位置: 首页 > backend >正文

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
5. ESP8266 设备作为 TCP client 连接到上述服务器器
AT+CIPSTART="TCP","192.168.3.116",8000
响应 :
OK
6. 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
7. ESP8266 设备接收到服务器器发来的数据,将提示如下信息:
+IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx
注意:
发送数据时,如果输⼊入的字节数超过了了设置⻓长度(n):
- 系统将提示 busy,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓长度的部分数据被认为是⽆无效数据,不不被接受。

 

 小总结:

基础 AT 指令

指令功能示例响应
AT测试模块连通性ATOK
AT+RST重启模块AT+RSTOK + 重启日志
AT+GMR查询固件版本AT+GMRAT 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扫描附近 WiFiAT+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+CIPSTATUSSTATUS:<状态码>
(2=已连接WiFi,3=TCP连接)
AT+CIPSTART建立 TCP/UDP 连接AT+CIPSTART="TCP","192.168.1.116",8000CONNECT OK
AT+CIPSEND发送数据AT+CIPSEND=4 → 输入 testSEND OK
AT+CIPCLOSE关闭连接AT+CIPCLOSECLOSED
+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局域网 IPESP8266 和 PC 在同一子网内,直接可达
    192.168.85.1可能为虚拟网络 IPVMware/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.1WSL2 虚拟网卡❌ 否配置端口转发
192.168.85.1VMware 虚拟网卡❌ 否切换为桥接模式
127.0.0.1本地环回❌ 否永远无法被 ESP8266 访问

 

http://www.xdnf.cn/news/14993.html

相关文章:

  • SpringAI学习笔记-MCP客户端简单示例
  • OSPFv3和v2区别(续)
  • SKUA-GOCAD入门教程-第九节 面的创建与编辑1
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (一)为什么RISC-V是颠覆性创新?
  • 二刷(李宏毅深度学习,醍醐灌顶,长刷长爽)
  • QML事件处理:鼠标、拖拽与键盘事件
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | StickyNavbar(粘性导航栏)
  • 【学习笔记】网络设备(华为交换机)基础知识 24 —— 以太网子接口基础知识
  • Java 阻塞队列:7种类型全解析
  • [Swarm] 上下文变量 | 接入function功能调用 | Mcp
  • Spring注解驱动开发
  • C语言使用Protobuf进行网络通信
  • Docker、Git与虚拟机:技术原理与深度对比(更新版)
  • SSH密钥 与 Ed25519密钥 是什么关系
  • 深入解析 structuredClone API:现代JS深拷贝的终极方案
  • 找出父节点名称和子节点名称拼接
  • C语言基础(1)
  • (四)机器学习小白入门YOLOv :图片标注实操手册
  • 插板式步进伺服模组:化工行业如何控制流量
  • Tensor数据转换
  • 华为eNSP防火墙实验(包含详细步骤)
  • 单稳态触发器Multisim电路仿真——硬件工程师笔记
  • Vue3组合式API应用:状态共享与逻辑复用最佳实践
  • 音频被动降噪技术
  • C++异步编程入门
  • ESP32-使用VSCODE 各种问题总结汇总
  • 【踩坑实录】RabbitMQ 高并发异常“爆仓”事故还原与配置优化实战指南
  • (生活比喻-图文并茂)http2.0和http3.0的队头阻塞,http2.0应用层解决,TCP层存在,3.0就是彻底解决,到底怎么理解区别???
  • Redis7.X部署全指南
  • 【GIT】GIT 的基本应用