用C#解析串口通信

时间:2014-11-24 18:03:51

标签: c# .net

我有一个应用程序要求我将一个4-10 ASCII字符串发送到RS422 Uart串行接收器。问题是Uart缓冲区最多只能接收2bytes 10ms左右。如何解析数据并以块的形式发送,而不会在另一方面超时。

正常的serial.write()方法溢出缓冲区,每次发送任何内容时都会从设备收到错误响应。该器件指定的波特率为19200,但也说我写的数据需要一次间隔2个字节。设备没有奇偶校验,握手或流量控制支持。

基本上我想做这样的事情:

private void sendData(string text)
   {
      string  textnew = text +(char)13;

      byte[] r_bytes = Encoding.ASCII.GetBytes(textnew);

       if (SeriialComms.IsOpen)
        {
            for (int i = 0; i > (textnew.Length/2); i = i + 2)
            {
                byte[] bytesToSend = { r_bytes[i], r_bytes[i+1] };
                SerialComms.Write(bytesToSend, 0, 2);
                System.Threading.Thread.Sleep(10);
            }
        }
   }

这是可能的,有更简单的方法吗?

0 个答案:

没有答案