我是新手,请教几个问题:
c#中有一个类: SerialPort
1、有个矩阵的说明书,说为了控制该设备,需要从RS232串口发送如下形式的命令,
ASCII:    1  0  M  a               HEX:   31  30  4D  61,
应该是两种形式都可以控制,那么,
我该如何发送呢?
像下面这样吗?
SerialPort.Write(“31  30  4D  61”)是直接把这个字符串发过去?
还是SerialPort.Write(“ 1  0  M  a”)
好心人耐心讲解一下吧,谢谢
我应该如何用这两种形式分别发送命令呢?

解决方案 »

  1.   

    发送字节就行了,ASCII的1就是Hex的30,你就放大字节数组中发送这个字节数组就行
      

  2.   

    http://blog.csdn.net/wuyazhe/category/695097.aspx
      

  3.   

    ASCII: 1 0 M a HEX: 31 30 4D 61,ASCII     CHAR
    0x31      1
    0x30      0
    0x4D      M
    0x61      a你发ascii也可以,发字符也可以。
    SerialPort port = new SerialPort();
    port.Open();
    port.Writeline("10Ma");

    port.Write(new byte[]{0x31,0x30,0x4D,0x61},0,4);
    效果一样。
      

  4.   

    楼上几位只说理论,没有提供具体的代码,我还是不明白,
    说明书中说需要从RS232串口发送如下形式的命令,
    ASCII: 1 0 M a      HEX: 31 30 4D 61,
    应该是两种形式都可以控制,那么,
    如果我想用这两种方式控制的话,都定义成字节数组?
    是下面这样吗?
               byte[] data = Encoding.Unicode.GetBytes("1 0 M a"); 
    还是下面这样?
              byte[] data = Encoding.Unicode.GetBytes("31 30 4D 61")
    这是一个疑问!
    还有另一个问题:我用Unicode还是ASCII?
    哪位给个正确可行的代码吧