qq_37033169
int i=0;
采纳率50%
2018-08-27 09:06

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

10
已采纳

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 3年前

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

    点赞 1 评论 复制链接分享
  • qq496649247 496649247 3年前

    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;

    点赞 评论 复制链接分享
  • qq_37033169 int i=0; 3年前

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

    点赞 评论 复制链接分享
  • xingjianfengaa xingjianfengaa 3年前

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

    点赞 评论 复制链接分享
  • jjx98678978 TinTin丶J 3年前

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

    点赞 评论 复制链接分享

相关推荐