Visual Studio 2010 express,WindowsFormsApplication
我的应用程序中有这两段代码。第一个应该每秒在串口上发送一些数据。第二个应该从串口接收数据。 目前,我没有连接到串口的设备。因此,永远不应触发已识别数据的处理程序,并且不应接收任何数据。 我的问题是我收到了我在第一段代码中发送的数据。这是正常的行为吗?有没有办法阻止这种行为?如果我将设备连接到串口会不一样?
private void timer1_Tick(object sender, EventArgs e)
{
serialPort.Write(dataToSend, 0, 1);
}
private void datarecievedhandler(object sender, SerialDataReceivedEventArgs e)
{
serialPort.Read(dataToRead, 0, 1);
MessageBox.Show("Something is recieved!");
}
答案 0 :(得分:1)
您必须首先测试设备是否与用于与设备通信的协议连接。
例如,尝试发送“hello”,然后等待ACK。如果超时,则意味着没有设备连接。
如果您的设备不支持“hello / ack”类型的消息,只需尝试读取数据并查看是否超时。