问题描述
我正在试验连接到 ATMEGA88 的 ESP8266,并通过 AT 命令对其进行配置。我已经将它设置为通过 TCP 连接连接到我的 wifi,并且它接收数据正常。现在我希望它也监听 UDP 广播。但我无法让它工作。
这样做的想法(目的)是通过 TCP 接收数据,并通过 UDP 广播进行单独的“时钟同步”。我有一个服务器和多个客户端 (AVR+ESP) 连接。这个时钟同步是一个简单的实验,我希望 AVR 定期(每 0.5 秒或其他时间)重置它们的计时器。我这里不需要高精度。
TCP 的设置是这样的:
description command expected response
==========================================================================
Begin ATE0 / AT OK
WIFIMode AT+CWMODE=3 OK
ConnectionMode AT+CIPMUX=0 OK
ApplicationMode AT+CIPMODE=0 OK
connected ? AT+CIPSTATUS STATUS:2 (ESP8266_CONNECTED_TO_AP)
Start AT+CIPMUX? CIPMUX:0
AT+CIPSTART="TCP","x.x.x.x",10000 CONNECT
STATUS:3 (ESP8266_CREATED_TRANSMISSION)
其中“x.x.x.x”是我的服务器(即同一网络上的 Android 应用)在端口 10000 的 IP。
因此,它将 WIFI mode
设置为“站和接入点”(3); connection mode
到“单”(1); application mode
到“正常”(0);然后建立 TCP 连接(在 IP x.x.x.x:10000 上)。正如我所说,这有效 :) 但是当我尝试关注 this guide to set up UDP "as well", 时,我最终收到错误“CIPMUX 和 CIPSERVER 必须为 0”
基本上,我试图修改(使用 TCP + UDP)是将 connection mode
设置为“multiple”(即 AT+CIPMUX=1),即
AT+CWMODE=3\r\n
AT+CIPMUX=1\r\n
AT+CIPMODE=0\r\n
AT+CIPSTART=0,"TCP",10000\r\n
AT+CIPSTART=0,"UDP","0.0.0.0",4445\r\n
据我所知,第二行将开始侦听端口 4445 上的 UDP 广播——来自任何 IP 地址。有没有人看到这里出了什么问题? CIPMUX 必须设置为 1(多个),对,才能同时使用 TCP 和 UDP?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)