按照modbus 协议我想往串口中写数据,按照ASCII的模式,如果要发送的数据是如下
: 01 01 00 05 00 01 F9 0D 0A(16进制)
转换成ASCII后是如下
3A 30 31 30 31 30 30 30 35 30 30 30 31 46 39 0D OA
那在c#中编程时,我发送": 01 01 00 05 00 01 F9 0D 0A"
还是 "3A 30 31 30 31 30 30 30 35 30 30 30 31 46 39 0D OA" 啊,谢谢;C# 中 串口发送示例: 
 sp.WriteLine(writeBuffer);

解决方案 »

  1.   


    byte[] writeBuffer = {0x01, 0x01, 0x00, 0x05...};
    sp.Write(writeBuffer, 0, writeBuffer.Length);
      

  2.   

    1、byte[] buf1 = Encoding.ASCII.GetBytes(你的数组或者字符串);//呵呵,具体格式忘了,反正是这个命令,你必须转化为ASCII发送才正确。“3A 30 31 30 31 30 30 30 35 30 30 30 31 46 39 0D OA”buf1自己得到的,不用你自己翻译。2、然后你用你的串口对象com.write(buf1)即可。
      

  3.   

    有资料说:: 的 ASCII码 不就是 3A嘛?其实,发送串“:010100050001F9”然后尾部加上 0d 0a 2 个字符就可以了,当然,也可以转换为 byte数组,存放 这个串对应的 ASCII码,再发送 一样!