问是这样的:与单片机通信时,如果单片机一直向串口写数据则数组中能够读到数,
如果单片机要求,计算机先发送命令数据(如77)而后才回复一段数据,再有计算机读取,这时数组中就得不到数据了。
会不会是线程的问题啊?请大侠帮忙看一下。
public static void inchar()
{
int comd = 0x77;
SerialPort serialPort1 = new SerialPort();
if (!flag) //如果串口未被打开 未被占用
{
serialPort1.PortName = "COM1";
serialPort1.Open();//设置好参数后,此时调用函数打开串口
flag = serialPort1.IsOpen;//置标志位
serialPort1.Write(comd.ToString());
}
if (serialPort1.BytesToRead > 0)
{
for (int i = 0; i < 20; i++)
{
R[i] = serialPort1.ReadByte();
}
}
else
{
serialPort1.Close();
flag = serialPort1.IsOpen;//置标志位
}
serialPort1.Close();
flag = serialPort1.IsOpen;//置标志位
}