qq_37033169
int i=0;
2018-08-27 09:06
采纳率: 50%
浏览 2.1k
已采纳

C#编写串口通讯程序,需要发送数组怎么发送?

byte[] bte = { 170, 0, 15, 31,, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204 };
port.Write(bte);

这样发送一个数组会报错,要转成string类型,但转成后发送就不是想要的数据了。比如要发送:AA 00 31 00 00 CC 这样的数据。求大佬解惑

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • hxy1975
    南京123 2018-08-28 06:57
    已采纳

    函数:Write(array[], Int32, Int32)
    报错的原因你缺少参数
    函数:Write(String)
    如果发字符串是用上面这个函数
    所以发送字符串和发送16进制数据需要的传递参数是不一样的

    点赞 评论
  • jjx98678978
    TinTin丶J 2018-08-27 09:13

    byte[] bte = new byte[];
    bte[1]=0xAA;
    bte[2]=0x00;
    bte[3]=0x31;
    bte[4]=0x00;;
    bte[5]=0x00;
    bte[6]=0xCC;
    就是说你往Byte中存值得时候放16进制的值

    点赞 评论
  • xingjianfengaa
    xingjianfengaa 2018-08-27 09:18

    你传char[] 因为每一个char字符都可当成一个数字 比如a =97 你 char ch=97你输出ch时就是字符a 你把它转成整数时就是97,正好char数组的每一位置就是你的一个数字,如果超出255就要在转换时2位转成一个数字

    点赞 评论
  • qq_37033169
    int i=0; 2018-08-27 09:23

    图片说明 为什么TCP通讯就可以直接传数组 串口不行吗?

    点赞 评论
  • qq496649247
    496649247 2018-08-27 15:55

    byte[] buf=new byte[5];
    buf[0]=0xAA;
    buf[1]=0x00;
    buf[2]=0x31;
    buf[3]=0x00;;
    buf[4]=0x00;
    if (port.IsOpen == false)
    return -1;
    port.Write(buf, 0,5);
    return 0;

    点赞 评论

相关推荐