资源简介

VC++串口编程文档和实例代码,对函数有详细的解释,代码直接可以使用,串口 ReadFile WriteFile sio_write sio_read函数有详细的介绍

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “DrvComCtl.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#include “../_include/Drivers/pcomm.h“

CDrvComCtl::CDrvComCtl()
{
m_iPort = -1;
m_nTotalTimeouts = 400;
m_nIntervalTimeouts = 200;
}

CDrvComCtl::~CDrvComCtl()
{
ClosePort();
}

//打开串口
BOOL CDrvComCtl::OpenPort(int iport char* szErr)
{
int iRet = sio_open(iport);
if ( iRet != SIO_OK)
{
switch(iRet)
{
case SIO_BADPORT:
strcpy(szErr “no such port or port not opened!“);
break;
case SIO_OPENFAIL:
strcpy(szErr “no such port or port has be opened!“);
break;
case SIO_WIN32FAIL:
strcpy(szErr “call win32 function fail please call!“);
break;
default:
break;
}
return FALSE;
}

m_iPort = iport;
//SetTimeOut();
return TRUE;
}

//设置串口参数
BOOL CDrvComCtl::SetPort(DWORD dwBaudRate 
 BYTE byParity
 BYTE byDataBit 
 BYTE byStopBits 
 char* szErr)
{
if (m_iPort == -1)
{
strcpy(szErr “port is not open!“);
return FALSE;
}

m_dwBaudRate = dwBaudRate;
m_byParity   = byParity;
m_byDataBit  = byDataBit;
m_byStopBit  = byStopBits;

int nDataBits = -1;
switch(byDataBit) 
{
case 5:
nDataBits=BIT_5;
break;
case 6:
nDataBits=BIT_6;
break;
case 7:
nDataBits=BIT_7;
break;
case 8:
nDataBits=BIT_8;
break;
default:
strcpy( szErr “no defined databits!“);
return FALSE;
break;
}
//停止位
int nStopBits =-1;
switch(byStopBits)
{
case 1:
nStopBits=STOP_1;
break;
case 2:
nStopBits=STOP_2;
break;
default:
strcpy( szErr “no defined stopits!“);
return FALSE;
break;
}
//校验位
int nParity = -1;
switch(byParity)
{
case 0:
nParity=P_NONE;
break;
case 1:
nParity=P_ODD;
break;
case 2:
nParity=P_EVEN;
break;
case 3:
nParity=P_MRK;
break;
case 4:
nParity=P_SPC;
break;
default:
strcpy( szErr “no defined Paritys!“);
return FALSE;
break;
}
//波特率
int nBaudRate = -1;
switch(dwBaudRate)
{
case CBR_110:
nBaudRate=B110;
break;
case CBR_300:
nBaudRate=B300;
break;
case CBR_600:
nBaudRate=B600;
break;
case CBR_1200:
nBaudRate=B1200;
break;
case CBR_2400:
nBaudRate=B2400;
break;
case CBR_4800:
nBaudRate=B4800;
break;
case CBR_9600:
nBaudRate=B9600;
break;
case CBR_19200:
nBaudRate=B19200;
break;
case CBR_38400:
nBaudRate=B38400;
break;
case CBR_57600:
nBaudRate=B57600;
break;
case CBR_115200:
nBaudRate=B115200;
break;
default:
strcpy( szErr “no defined baudrate!“);
return FALSE;
break;
}
    int nMode=nDataBits|nParity|nStopBits;
int iRet = sio_ioctl(m_iPort nBaudRate nMode);
if( iRet != SIO_OK )
{
switch(iRet)
{
case SIO_BADPARM:
strcpy( szErr “bad parm!“);
break;
default:
return FALSE;
}
}
return TRUE;
}
//设置超时
voi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      34816  2011-11-25 15:54  VC++ 串口设备操作\基于VB的串口通讯及其软件实现.doc

     文件       5743  2011-11-25 16:02  VC++ 串口设备操作\调用Pcomm函数库\DrvComCtl.cpp

     文件       1390  2011-11-01 15:55  VC++ 串口设备操作\调用Pcomm函数库\DrvComCtl.h

     文件       7403  2011-05-12 13:56  VC++ 串口设备操作\调用Pcomm函数库\PCOMM.H

     文件      42496  2011-11-24 14:01  VC++ 串口设备操作\调用Pcomm函数库\pcomm使用说明.doc

     文件       6139  2011-11-25 16:14  VC++ 串口设备操作\调用Win32 API函数\SerialPort.cpp

     文件       3093  2010-05-28 13:28  VC++ 串口设备操作\调用Win32 API函数\SerialPort.h

     目录          0  2011-11-25 16:07  VC++ 串口设备操作\调用Pcomm函数库

     目录          0  2011-11-25 16:14  VC++ 串口设备操作\调用Win32 API函数

     目录          0  2011-11-25 16:26  VC++ 串口设备操作

----------- ---------  ---------- -----  ----

               101080                    10


评论

共有 条评论