- TCP 被动接收模式,每次发的数据会先存到缓冲区,参见:AT+CIPRECVTYPE 指令说明。
即每包数据不会实时报告 +IPD 接收情况,如果需要查询缓冲区的数据,先用 AT+CIPRECVLEN? 指令查询被动接收模式下套接字数据的长度 。获取到数据长度信息后,再用 AT+CIPRECVDATA 指令查询被动接收模式下的数据。
与 BLE Server 共存就再发 BLE 对应指令就行,只要 BLE 建立连接,就可以正常接受数据。指令序列如下:
AT+RESTORE
AT+CWMODE=2 // 设置 WiFi AP 模式
AT+CIPMUX=1 // 设置 多连接模式
AT+CWSAP="ESP32_softAP","12345678",5,3 // 设置 WiFi AP 信息
AT+CIPRECVTYPE=5,1 // 设置 TCP 多连接模式下的 被动接收模式
AT+CIPSERVER=1 // 创建 TCP Server ,默认端口号 333
AT+BLEINIT=2 //设置 BLE Server 模式
AT+BLEGATTSSRVCRE // 创建 BLE Server 服务
AT+BLEGATTSSRVSTART // 使能 BLE Server 服务
AT+BLEADVDATAEX="ESP32","A002","1122334455",1 //设置 BLE server 广播数据,广播名称为 ESP32
AT+BLEADVSTART // 开启 BLE 广播
// WiFi 连接信息
+STA_CONNECTED:"02:4e:24:40:8e:54"
+DIST_STA_IP:"02:4e:24:40:8e:54","192.168.4.2"
0,CONNECT // TCP 连接信息
+IPD,0,6 // TCP 数据通信
AT+CIPRECVLEN? // 查询被动接收数据的长度
+CIPRECVLEN:24,0,0,0,0
OK
AT+CIPRECVDATA=0,24 // 获取被动接收数据
+CIPRECVDATA:24,123456123456123456123456
OK
+BLECONN:0,"58:b4:68:dc:3a:f4" // BLE 连接信息
+BLESETPHY:"58:b4:68:dc:3a:f4",2,2
+BLECFGMTU:0,517
+WRITE:0,1,6,1,2, // BLE 数据通信的返回信息
+WRITE:0,1,7,1,2,
+WRITE:0,1,6,1,2,