2

我正在尝试在两个 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
4

0 回答 0