C#:等待RS485发送的特定字符

时间:2016-05-06 16:13:03

标签: c# rs485

在我的应用程序中,我将数据发送到微控制器。我发送数据,微控制器执行程序,并发送字符(" K")。我的应用程序应该等待这个字符。收到此字符后,它应该再次发送数据。

我收到这个角色时遇到了问题。函数BytesToRead是否正确读取字符?当我的功能达到此功能时,我的程序总是会掉落

static void wait()
    {
        SerialPort COMport = new SerialPort();
        int znak;

        COMport.PortName = "COM6"; // 
        COMport.BaudRate = 1200;
        COMport.DataBits = 8;
        COMport.Parity = Parity.None;
        COMport.StopBits = StopBits.One;

        COMport.Open();

        do
        {
            znak = COMport.BytesToRead;
        } while (znak != 75);   // ASCII K = 75

        COMport.Close();
        return;
    }

2 个答案:

答案 0 :(得分:0)

COMport的BytesToRead属性返回COMport已接收的字符数,因此您的循环将继续,直到读取正好75个字符。看一下SerialPort课程的文档。它将向您展示如何从COMport读取/写入字符的一个很好的示例。

答案 1 :(得分:0)

为什么不使用while(COMport.ReadChar() != 'K') { /* Do Stuff */ }