现在要做一个程序,跟串口通讯有关,下位机开起来后 会不定时的给串口发来16进制的数据,一个2位的16进制数据表示一个符号,比如 61 代表的是a 这样的一个数据比对放在什么地方做比较好?另外串口通讯要用到什么函数?谢谢!

解决方案 »

  1.   

    用serialport类的 public int ReadByte () 函数,用一个死循环不停地ReadByte,它返回一个int型数据,但其实只会是0到255,再和十六进制数比较比较就行。int i;
    i = serialport.ReadByte();
    i == 0x62 ? 
      

  2.   

    用100个case也行。
    如果仅仅是显示的话,用ASCIIEncoding 把byte数组转成字符串吧
      

  3.   

    1:16进制可不可以直接转换成相对应的ASCII字符?还是要先换成十进制再转换成相应的ASCII码字符?
    2:我在接收的时候通过多线程来进行这个转换的操作,可以将接收到的值传给多线程吗?
    3:用多线程操作会不会出现后面的线程先完成的操作。而前面的没有完成
      

  4.   

    16进制和10进制数都是一样的,只不过用不同方式显示给你看而已。比如表达式 0x10 == 16 永远返回的是true。所以不用做任何转换。
      

  5.   

    如果你传的都是ascII字符不用转换也能比较啊,对比一下有必要用多线程么?