CByteArray Address;
Address.SetSize(1);
Address[1] = 0xf4;
m_ComPort1.SetOutBufferCount(0);
m_ComPort1.SetOutput(COleVariant(Address));数据是发出去了,但我发现收到的数据不是 0xf4,  而变成了0x3f了,我发现发送的数据如果大于7F,也就是127,怎么就有这种问题,请高手指教一下

解决方案 »

  1.   

    比如我发送的数据是500,分两个字节发,第一个发0x01,第二个发0xf4,结果第一个字节收到正确,第二个不正确
      

  2.   

    波特率协调好了吗?端口设置的数据位是正确的吗?(起始位,数据位是几个,停止位个?)
    我有碰到过类似问题,做PC和单片机的通讯,结果是因为单片机的波特率设置有偏差。你是发的Address[1],还是Address[0]?
      

  3.   

    swind0826(风子
    CByteArray Address;
    Address.SetSize(2);
             Address.[0] = 0x01;
    Address[1] = 0xf4;
    m_ComPort1.SetOutBufferCount(0);
    m_ComPort1.SetOutput(COleVariant(Address));
    两个字节都收到了,但第二个字节收的不对,而且在收第二个字节的时候程序等了几秒钟。我发现如果我先发0xf4,再发0x01,就只能收到一个字节,还是错的高手给指点一下吧!!!!!
      

  4.   

    好像有个超时参数设置吧,你看看
    还有,你是在9X下面做还是在2000&XP下面?
    你是用的什么通讯方式?异步还是同步?
    在9X下面,两种都支持,但在2000&XP下面,就只支持异步方式了!
    如果是在2000&XP下用的同步方式,那出现的问题就什么稀奇古怪的都有了我就吃过这个亏:(
      

  5.   

    第一:是别人得程序(另一个程序)在接收你的数据吗?一般情况是设置问题!仔细查看波特率、
    数据位、校验位等.2)参考: 一个很好得“ 多线程,多接收模式串口类LsComm ”,简单点的参考“串口通讯类及其例子程序 ”
      

  6.   

    忘了地址:在这里:
    http://www.vckbase.com/code/listcode.asp?mclsid=9&sclsid=907