发表于:2007-05-18 15:39:00
                
                楼主
             
            
            
                我正在使用ADAM4017 4024做一个实验设备的开发。前一段时间我的通信总是无法进行。最近我终于知道原因在于ADAM 4017的默认通信要求使用CheckSum,而我使用的Mscomm没有相关的设置.我在ADAM4000 Utility试图关闭CheckSum结果行不通.我是新手,在这里想请教各位高手看我的程序到底问题在哪里.先感谢了.
这是我使用MScomm控件的串口发送程序:
CByteArray array1;
		array1.RemoveAll();
		array1.SetSize(5);
		array1.SetAt(0,0x23);
		array1.SetAt(1,0x30);
		array1.SetAt(2,0x31);//发送#01	
		array1.SetAt(3,(0x23+0x30+0x31)%0xFF);//这里我想做一个 CheckSum,
		array1.SetAt(4,0x0d);//回车
		///////#01 ==>  send 0x23, 0x30, 0x31, 0x0d
			
		for(int ReSend1=0;ReSend1<10;ReSend1++)
		{
			m_cmscomm1.SetOutput(COleVariant(array1));
			Sleep(100);
		}
或者我直接发送字符串,我是这样做的:
                   Cstring SendData1="#01"+'\r';
                for(int ReSend2=0;ReSend2<10;ReSend2++)
		{
			m_cmscomm1.SetOutput(COleVariant(SendData1));
                              Sleep(100);
		}
其中m_cmscomm1就是MSComm控件的对象,请教懂这方面的高手给我指点一下,不胜感激.