在工作中我们经常需要使用电脑PC机与模块进行通信,PC机与模块通信往往是通过COM口通信的,我们见到的QXDM,AT指令等等都是通过COM通信的,那么如何打开COM口进行通信呢?
打开COM口代码如下:
BOOL CASRDownloaderDlg::Openport()
{
CString commName;
if (m_port < 10) //m_port 为com口端口号
{
commName.Format(L"COM%d", m_port);
}
else
{
commName.Format(L"\\\\.\\COM%d", m_port);
}
m_hIDComDev = CreateFile(LPCTSTR(commName), GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); // HANDLE m_hIDComDev ,m_hIDComDev 为打开的COM句柄
if ((HANDLE)(-1) == m_hIDComDev)
{
MessageBox(L"Open Port Failed!", L"Error", MB_OK | MB_ICONSTOP);
return FALSE;
}
DCB commProp;
LPDCB lpDCB = &commProp;
if (!GetCommState(m_hIDComDev, lpDCB))
{
CloseHandle(m_hIDComDev);
m_hIDComDev = (HANDLE)(-1);
MessageBox(L"GetCommState Fa