VC串口不能接收数据
江明大吴 2012-05-02 02:57:20 使用串口调试助手再用程序就可以,直接使用的时候不能接收数据,不知道是不是配置的问题,下面是配置代码
hCom=CreateFile(m_Com,
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(hCom==(HANDLE)-1)
{
AfxMessageBox(_T("打开失败"),MB_OK,NULL);
return;
}
AfxMessageBox(_T("打开成功"),MB_OK,NULL);
COMMTIMEOUTS TimeOuts;
TimeOuts.ReadIntervalTimeout=0xFFFFFFFF;
TimeOuts.ReadTotalTimeoutMultiplier=0;
TimeOuts.ReadTotalTimeoutConstant=0; //读超时
TimeOuts.WriteTotalTimeoutMultiplier=0;
TimeOuts.WriteTotalTimeoutConstant=0;
SetCommTimeouts(hCom,&TimeOuts); //写超时
DCB dcb;
GetCommState(hCom,&dcb);
dcb.DCBlength=sizeof(DCB);
dcb.BaudRate=115200; //波特率为115200
dcb.ByteSize=8; //每个字节有8位
dcb.Parity=NOPARITY; //无奇偶校验位
dcb.StopBits=1; //1个停止位
//dcb.EvtChar = 'q';
dcb.fDtrControl=1;
dcb.fRtsControl=1;
SetCommState(hCom,&dcb);
SetupComm(hCom,1024,1024);
SetCommMask(hCom, EV_RXCHAR | EV_CTS | EV_DSR);
PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR);