资源简介
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语言图形动画课程设计奔跑的小人
相关资源
- 串口通讯技术实现--两台pc机通过串口
- C++语言编写串口调试助手
- GD32F103 在线串口Ymodem协议升级IAP
- qt 串口助手源码
- 使用QWT库实现接收串口数据,并根据
- Qt5串口通信-windows
- 串口实验(接收与发送)
- 程序案例 利用LabVIEW实现串口通讯
- STM32(神舟III号 串口1发送实验程序)
- STM32429的串口收发程序
- atmega128 串口通讯(RS485.c)
- arduino I2C设备扫描并串口返回地址(
- 串口调试助手(测试STM32串口)
- N76E003串口收发
- TCP/IP与串口调试
- LabwindowsCVI 串口编程及事例.docx
- vc_串口通讯
- VC++ 串口
- 串口数据采集及显示
- Visual_C++_数据采集与串口通信测控应用
- c++编写的串口通讯程序
- 多线程串口通讯
- vs2008串口接收数据并存储于TXT文档
- 串口通信数据库:基于RFID的电子票证
- Visual C++数据采集与串口通信测控应用
- Visual C++串口通信技术详解.(机械工业
- VC6.0经典串口通信源程序C++
- 基于MFC的无线串口调试工具-哈工大威
- 串口助手+CRC校验(可用于PLC中ModBus通
- VC++ MFC 串口通信20个经典源码合集
评论
共有 条评论