我在使用串行端口接收数据时遇到了问题。我的代码中的LRx是数据接收,超时是我设置为等待1MS响应的计时器。 1Ms后仍无响应(LRX仍等于0),提示将增加1。3次后仍无响应,并且将出现“错误”框。
我试图制作While循环以检查LRx的条件和超时,但是看起来好像卡在While循环中。
for (int i = 0; i < 5; i++)
{
if(!transfer)
{
for(int count = 0; count <3; count++)
{
ReadCoils((byte)(i + 1));
timeout = false;
timer2.Interval = 1;
timer2.Enabled = true;
while ((LRx == 0) && (!timeout)) { };
if (LRx != 0)
{
DataProcess();
count = 4;
}
}
if(transfer)
{
MessageBox.Show("Slave " + (i+1) + " Not Responding", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}