我正在尝试在两个 ESP8266 Wifi 芯片之间进行串行通信。首先,我尝试在 for 循环中发送样本数据 10 次。这是代码:
发射器:
for Packets = 1 : 10
SendData(client,Data(Packets));
end
接收者:
Packets = 1
while(1)
Data(Packets) = ReceiveData(Server);
Packets = Packets + 1;
if (packets == 10)
break
end
end
它运作良好。问题是当我想发送一些延迟的数据时,发送器应该再次连接到接收器,并且服务器(接收器)接收到一些数据,表明再次建立连接。接收到的 Buffer 应该是:
+IPD,0,1024:ùüþþþýýþþÿÿûûýþýûúþÿúóýÿþþþþþýúøûýþ...
但重新连接后接收到的 Buffer 是:
0,CLOSED %Receiver Prompt, disconnected from Transmiter
0,CONNECT %Receiver Prompt,connected to Transmiter
+IPD,0,1024:ùüþþþýýþþÿÿûûýþýûúþÿúóýÿþþþþþýúøûýþ...
数据的剩余部分将在下一个数据包中读取,下一个数据包相同。
我应该怎么做才能只接收数据?
发送和接收函数:
function ReceivedBuffer = ReceiveData(SerialPort)
ReceivedBuffer = fread(server,1038); %Size data = 1038 Bytes
end
function SendData(SerialPort,Data)
fwrite(SerialPort,Data);
end