添加 thread.sleep 如果端口接收没有在串行端口 c# 中发送消息

add thread.sleep if port receive did not message in Serial Port c#

我有代码通过串口发送接收数据,如下所示:

 serialPort1.WriteLine(item);
                Thread.Sleep(10000);
                sRecv = serialPort1.ReadExisting().ToString();

发送数据,Thread.sleep10秒后接收数据,但是10秒后Port没有接收到数据的问题,如何添加Thread.sleepif如果没有收到数据,接下来的 10 秒

也许做个测试,看看是否有数据可供读取:

while(serialPort1.BytesToRead == 0)
{
    Thread.Sleep(10000);
}
sRecv = serialPort1.ReadExisting();

顺便说一句,你不需要调用 ToString 因为 ReadExisting 已经 returns 一个字符串。

编辑:

60 秒后停止:

int timeOut = 60000;
int waitedTime = 0;
int waitInterval = 10000;
while (serialPort1.BytesToRead == 0 && waitedTime < timeOut)
{
    Thread.Sleep(waitInterval);
    waitedTime += waitInterval;
}
sRecv = serialPort1.ReadExisting();