• 大小: 52KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: C/C++
  • 标签: 串口  通讯  

资源简介

不可多得的两串口通讯源代码,一定要看呀!

资源截图

代码片段和文件信息

#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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        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  串口通讯使用说明.txt

评论

共有 条评论