資源簡(jiǎn)介
不可多得的兩串口通訊源代碼,一定要看呀!

代碼片段和文件信息
#include?“stdafx.h“
#include?“com232.h“
BYTE?XwCom=0x40;
BYTE??sCom1[5]sCom2[MAXBLOCKLENGTH+12]sCom3[MAXBLOCKLENGTH+12];
BYTE?opation;
short?ComNum;
//COMSTAT?ComStat;
CComStatus::CComStatus()
{
m_hCom?=?NULL;
m_bComId?=?(char)ComNum;//COM1
m_bByteSize=8;
m_bStopBits=ONESTOPBIT;
m_bParity=NOPARITY;
m_dwBaudRate=9600;
// m_fChEvt=1;
m_bEvtChar=EVENTCHAR;
m_fBinary=1;
m_bConnected?=?FALSE;
m_bFlowCtrl?=?FC_XONXOFF?;
m_fXonXoff?=?FALSE;
}
CComStatus::CComStatus(BYTE?bComIdBYTE?bByteSizeBYTE?bStopBitsBYTE?bParity
DWORD?dwBaudRate/*WORD?fChEvt*/char?bEvtCharDWORD?fBinary)
{
m_hCom?=?NULL;
m_bComId?=?bComId;
m_bByteSize=bByteSize;
m_bStopBits=bStopBits;
m_bParity=bParity;
m_dwBaudRate=dwBaudRate;
// m_fChEvt=1;
m_bEvtChar=bEvtChar;
m_fBinary=fBinary;
m_bConnected?=?FALSE;
m_bFlowCtrl?=?FC_XONXOFF?;
m_fXonXoff?=?FALSE;
}
BOOL?CComStatus::OpenConnection()
{
char?csCom[10];
????COMMTIMEOUTS??CommTimeOuts?;
????if((m_bComId?0)?||?(m_bComId?>?4))
return?FALSE;//從COM1到COM4
if(m_hCom)//if?already?open
return?FALSE;
????//OVERLAPPED包含異步I/O信息
m_rdos.Offset?=?0;
m_rdos.OffsetHigh?=?0;
m_rdos.hEvent?=?CreateEvent(NULLTRUEFALSENULL);
if(m_rdos.hEvent?==?NULL)
return?FALSE;
m_wtos.Offset?=?0;
m_wtos.OffsetHigh?=?0;
m_wtos.hEvent?=?CreateEvent(NULLTRUEFALSENULL);
if(m_wtos.hEvent?==?NULL)
{
CloseHandle(m_rdos.hEvent);
return?FALSE;
}
wsprintf(csCom“COM%d“m_bComId);
m_hCom?=?CreateFile(csComGENERIC_READ?|?GENERIC_WRITE
????0
????NULL
????OPEN_EXISTING
????FILE_ATTRIBUTE_NORMAL?|?FILE_FLAG_OVERLAPPED
????NULL
);
if(m_hCom?==?INVALID_HANDLE_VALUE)?{
//dwError?=?GetLastError();
????//?handle?error?
return?FALSE;
}
else
{
??????//?get?any?early?notifications
??????SetCommMask(?m_hCom?EV_RXCHAR?)?;
??????//?setup?device?buffers
??????SetupComm(?m_hCom?4096?4096?)?;
??????//?purge?any?information?in?the?buffer
??????PurgeComm(?m_hCom?PURGE_TXABORT?|?PURGE_RXABORT?|
??????????????????????????????????????PURGE_TXCLEAR?|?PURGE_RXCLEAR?)?;
??????//?set?up?for?overlapped?I/O
??DWORD?dwTemp?=?1000?/?(this->m_dwBaudRate?/?8);
??????CommTimeOuts.ReadIntervalTimeout?=?0xFFFFFFFF?;
??????CommTimeOuts.ReadTotalTimeoutMultiplier?=?0;//((dwTemp?>?0)???dwTemp?:?1);
??????CommTimeOuts.ReadTotalTimeoutConstant?=?1000?;
??????//?CBR_9600?is?approximately?1byte/ms.?For?our?purposes?allow
??????//?double?the?expected?time?per?character?for?a?fudge?factor.
??????
??????CommTimeOuts.WriteTotalTimeoutMultiplier?=?2*CBR_9600/this->m_dwBaudRate;//(?npTTYInfo?)?;
??????CommTimeOuts.WriteTotalTimeoutConstant?=?0;//1000?;
??????SetCommTimeouts(?m_hCom?&CommTimeOuts?)?;
}
if(!SetupConnection())
{
CloseConnection();
return?FALSE;
}
EscapeCommFunction(?m_hCom?SETDTR?);
m_bConnected?=?TRUE;
return?TRUE;
}
BOOL?CComStatus::CloseConnection()
{
???if?(NULL?==?m_hCo
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????1586??2000-01-03?00:55??serealcom.clw
?????文件????????3633??1999-08-29?10:34??ReadMe.txt
?????文件?????????541??1999-08-29?10:34??serealcom.dsw
?????文件????????1357??1999-08-29?10:34??serealcom.h
?????文件????????2163??1999-09-12?11:07??serealcom.cpp
?????文件????????1830??1999-09-12?11:31??serealcomDlg.h
?????文件????????6112??1999-09-12?11:35??serealcomDlg.cpp
?????文件????????1054??1999-08-29?10:34??StdAfx.h
?????文件?????????211??1999-08-29?10:34??StdAfx.cpp
?????文件?????????916??1999-09-12?11:10??resource.h
?????文件????????5886??2000-01-03?00:52??serealcom.rc
?????文件??????107520??2000-01-03?01:01??serealcom.ncb
?????文件????????4458??2000-01-03?01:01??serealcom.dsp
?????文件???????36200??2000-01-03?00:52??serealcom.aps
?????文件?????????848??2000-01-03?00:53??serealcom.plg
?????文件????????1904??1999-09-12?11:01??COM232.H
?????文件???????19318??1999-10-13?09:37??Com232.cpp
?????文件???????59904??2000-01-03?01:01??serealcom.opt
?????目錄???????????0??1999-08-29?14:49??res\
?????文件?????????401??1999-08-29?10:34??res\serealcom.rc2
?????文件????????1078??1999-08-29?10:34??res\serealcom.ico
?????文件????????1277??1999-09-12?11:29??ComDlg.h
?????文件????????1769??1999-09-12?11:29??ComDlg.cpp
?????目錄???????????0??2000-01-03?01:00??Debug\
?????文件?????????129??2000-01-03?01:01??串口通訊使用說(shuō)明.txt
評(píng)論
共有 條評(píng)論