描述:
請問下面連接com和發送消息哪裡還有問題,為甚麼送不出去呢?謝謝
用示波器看不到信號,接受方也沒反映
void CHy01Dlg::OnButton1()
{COMMTIMEOUTS timeouts;
DCB dcb;
if(bOpen) MessageBox("Com has been used");
if((hComDev=CreateFile("COM2",GENERIC_READ|GENERIC_WRITE,0,NULL,
OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL))==INVALID_HANDLE_VALUE)
MessageBox("Connect com failed");
//return FALSE;
ASSERT(hComDev!=INVALID_HANDLE_VALUE);
SetCommTimeouts(hComDev,&timeouts);//set timeout control
SetupComm(hComDev,1024,512);////
GetCommState(hComDev,&dcb);//
dcb.BaudRate=CBR_38400; //
dcb.fParity=NOPARITY;//
dcb.ByteSize=7;
dcb.StopBits=ONESTOPBIT;
SetCommMask(hComDev,EV_ERR|EV_RXCHAR);
SetCommState(hComDev,&dcb);
bOpen=TRUE;
m_connect.EnableWindow(0);
}
void CHy01Dlg::OnButtonSend()
{
BOOL bWriteState;
DWORD dwBytesWritten=5;
m_commctrl.SetDTREnable(TRUE);
if(!bOpen) MessageBox("COM don't connect");//return FALSE;
bWriteState=WriteFile(hComDev,"RUN PROGRAM",//lpSndBuffer,
dwBytesToWrite,&dwBytesWritten,NULL);
if(!bWriteState || dwBytesToWrite!=dwBytesWritten)
MessageBox("send fail");//return FALSE;
else
MessageBox("send ok");//return TRUE;
}