发表于: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控件的对象,请教懂这方面的高手给我指点一下,不胜感激.