如果我发送0x55(小于0x80),没有问题
CString strtemp="\x55";
m_ctrlComm.SetOutput(COleVariant(strtemp));如果大于0x80,如0xA5,那边就接收不到,就像
CString strtemp="\xA5";
m_ctrlComm.SetOutput(COleVariant(strtemp));
该怎么解决?

解决方案 »

  1.   

    我记得串口传输的是ascii码,也就是7位有效的,第八位是奇偶校验位,可能是这个问题。
    把十六进制数按字符传不就行了
      

  2.   

    SatanLi1982(红魔),是你说的这个问题吗?
    我的串口设置是8位数据位,没有校验位。
    按照你说的这样我就要传2个字符(字节),可是对方的接收也要改,我现在就是不能改那边。
      

  3.   

    怎么可能收不到0x80以上的字符呢,看样子你用的是COMM控件,你去www.codeproject.com上下个例子看看,肯定可以的。我估计是你的COleVariant有问题。
    我原来也用过好象就是这个转换有点难。不行有一个串口的类,也在www.codeproject.com上,你也可以试一下!