点击通信校验后有时会弹出成功,但是有时会没反应,这是为什么?程序有错误吗?
void CTestDlg::OnOnCommMscomm1() //小电话
{
// int inCount;
VARIANT input;
BYTE rxdata[2048];
long len,k;
COleSafeArray safearray;
switch(myComm.GetCommEvent())
{
case 2:
input=myComm.GetInput();
safearray=input;
len=safearray.GetOneDimSize();
for (k=0;k<len;k++)
{
safearray.GetElement(&k,rxdata+k);
}
if ((rxdata[0]==07) && (rxdata[1]+rxdata[2]==255))
{
iStatus=2;
AfxMessageBox("通讯校验成功!");
m_start.EnableWindow(TRUE);
break;
}
/*
else if ((rxdata[0]==05) && (rxdata[1]+rxdata[2]==255))
{
iStatus=2;
AfxMessageBox("电磁铁成功!");
break;
}*/
break;
}
VARIANT variant_inp;
COleSafeArray safearray_inp;
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{ ////////根据通信协议加入处理代码
HVSTATUS status = STATUS_OK;
/*
}
// 通信校验按钮
void CTestDlg::OnButton2()
{
CByteArray Array;
Array.RemoveAll();
Array.SetSize(1);
Array.SetAt(0,17);//0x11
myComm.SetOutput(COleVariant(Array));
iStatus=1;
}
void CTestDlg::OnButOpen()
{
// TODO: Add your control notification handler code here
HVSTATUS status = STATUS_OK;
/*
void CTestDlg::OnButStart() //在线检测按钮
{
// TODO: Add your control notification handler code here
HVSTATUS status = STATUS_OK;
/*
void CTestDlg::OnButStop() //关闭相机按钮
{
// TODO: Add your control notification handler code here
HVSTATUS status =STATUS_OK;
// 停止采集图像到内存,可以再次调用HVStartSnapEx启动数字摄像机采集
status = HVStopSnap(m_hhv);
HV_VERIFY(status);
if (HV_SUCCESS(status)) {
m_bStart = FALSE;
}
}
用串口调试助手调试下,波特率,停止位,校验位对不对