资源简介
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
- 上一篇:C++课程设计影碟出租管理
- 下一篇:c语言图形动画课程设计奔跑的小人
相关资源
- VS与串口通信
- arm板控制指纹模块
- 纯C语言的串口YModem程序
- 带流控制的串口通讯程序.rar
- c语言程序实现PC端通过USB端口与单片
- vs2013 c++串口助手源码
- 串口通信c程序
- windows串口控件
- Linux 串口源代码纯C++
- VC++ 编写的 Modbus 协议类 并附带串口通
- 有操作数据库、串口的Qt代码的工程
- Linux下串口通讯程序C++源代码
- 建立一个基于对话框的MFC应用程序S
- 完整串口通信程序(发送和接受)V
- 支持自动回复CRC16计算的串口调试助手
- 串口调试助手源代码(MFC+SComm)
- 非常有用的单片机C语言程序.rar
- VS2010 C++ 串口通讯工具Serial 源代码
- 基于VC++6.0的串口实时数据采集及实时
- 迪文串口屏单片机历程
- 串口调试助手sscom32 和中文说明文档
- VC++串口通信20个经典源码合集.zip
- VC++串口通信20个经典源码合集
- vs2010 mfc 手把手教你串口调试助手
- C语言 串口数据发送/接收
- stc系列单片机串口通讯
- 串口工具
- STC51 ADC 采集及串口通讯
- 单片机串口通信(方式1)
- STM32F103 串口环形队列应用程序
评论
共有 条评论