CByteArray Address;
Address.SetSize(1);
Address[1] = 0xf4;
m_ComPort1.SetOutBufferCount(0);
m_ComPort1.SetOutput(COleVariant(Address));数据是发出去了,但我发现收到的数据不是 0xf4, 而变成了0x3f了,我发现发送的数据如果大于7F,也就是127,怎么就有这种问题,请高手指教一下
Address.SetSize(1);
Address[1] = 0xf4;
m_ComPort1.SetOutBufferCount(0);
m_ComPort1.SetOutput(COleVariant(Address));数据是发出去了,但我发现收到的数据不是 0xf4, 而变成了0x3f了,我发现发送的数据如果大于7F,也就是127,怎么就有这种问题,请高手指教一下
我有碰到过类似问题,做PC和单片机的通讯,结果是因为单片机的波特率设置有偏差。你是发的Address[1],还是Address[0]?
CByteArray Address;
Address.SetSize(2);
Address.[0] = 0x01;
Address[1] = 0xf4;
m_ComPort1.SetOutBufferCount(0);
m_ComPort1.SetOutput(COleVariant(Address));
两个字节都收到了,但第二个字节收的不对,而且在收第二个字节的时候程序等了几秒钟。我发现如果我先发0xf4,再发0x01,就只能收到一个字节,还是错的高手给指点一下吧!!!!!
还有,你是在9X下面做还是在2000&XP下面?
你是用的什么通讯方式?异步还是同步?
在9X下面,两种都支持,但在2000&XP下面,就只支持异步方式了!
如果是在2000&XP下用的同步方式,那出现的问题就什么稀奇古怪的都有了我就吃过这个亏:(
数据位、校验位等.2)参考: 一个很好得“ 多线程,多接收模式串口类LsComm ”,简单点的参考“串口通讯类及其例子程序 ”
http://www.vckbase.com/code/listcode.asp?mclsid=9&sclsid=907