-
大小: 5.97MB文件类型: .rar金币: 1下载: 0 次发布日期: 2023-09-25
- 语言: C/C++
- 标签:
资源简介
VS2003 MFC串口源码,通过修改可以变成自己的串口调试工具。
代码片段和文件信息
#include “stdafx.h“
#include “Com.h“
#include
#include “assert.h“
#include “Thread.h“
HANDLE m_COM_Handle;
OVERLAPPED m_OverlappedRead;
OVERLAPPED m_OverlappedWrite;
CThread thread;
extern char gBaudType;
CCom::CCom()
{
}
CCom::~CCom()
{
if (NULL != m_COM_Handle)
{
CloseCom();
m_COM_Handle = NULL;
}
}
BOOL CCom::OpenCom(char *chPort
char *cfgMessage
unsigned long lngInSize
unsigned long lngOutSize)
{
BOOL Status = TRUE;
char szMsg[255];
DCB ComDcb;
COMMTIMEOUTS CommTimeOuts;
memset(szMsg0sizeof(255));
m_COM_Handle = CreateFile(chPort
GENERIC_READ|GENERIC_WRITE
0
NULL
OPEN_EXISTING
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED
NULL );
if(m_COM_Handle == NULL)
{
return FALSE;
}
memset(&m_OverlappedRead 0 sizeof (OVERLAPPED));
//设置ComDcb块
ComDcb.DCBlength = sizeof( DCB ); //长度
GetCommState(m_COM_Handle &ComDcb );
memset(&ComDcb0sizeof(DCB));
sprintf(szMsg“%s:%s“ chPortcfgMessage);
BuildCommDCB(szMsg&ComDcb);
//------------------------------
ComDcb.fBinary=TRUE; //二进制方式
ComDcb.fOutxCtsFlow=FALSE; //不用CTS检测发送流控制
ComDcb.fOutxDsrFlow=FALSE; //不用DSR检测发送流控制
ComDcb.fDtrControl=DTR_CONTROL_DISABLE; //禁止DTR流量控制
ComDcb.fDsrSensitivity=FALSE; //对DTR信号线不敏感
ComDcb.fTXContinueOnXoff=TRUE; //检测接收缓冲区
ComDcb.fOutX=FALSE; //不做发送字符控制
ComDcb.fInX =FALSE; //不做接收控制
ComDcb.fErrorChar=FALSE; //是否用指定字符替换校验错的字符
ComDcb.fNull=FALSE; //保留NULL字符
ComDcb.fRtsControl=RTS_CONTROL_ENABLE; //允许RTS流量控制
ComDcb.fAbortonerror=FALSE; //发送错误后,继续进行下面的读写操作
ComDcb.fDummy2=0; //保留
ComDcb.XonLim=0; //指定在XOFF字符发送之前接收到缓冲区中可允许的最小字节数
ComDcb.XoffLim=0; //指定在XOFF字符发送之前缓冲区中可允许的最小可用字节数
ComDcb.XonChar=0; //发送和接收的XON字符
ComDcb.XoffChar=0; //发送和接收的XOFF字符
ComDcb.ErrorChar=0; //代替接收到奇偶校验错误的字符
ComDcb.EofChar=0; //用来表示数据的结束
ComDcb.EvtChar=0; //事件字符,接收到此字符时,会产生一个事件
ComDcb.wReserved1=0; //没有使用
switch(gBaudType)
{
case BD_9600:
ComDcb.BaudRate =9600; //波特率
break;
case BD_115200:
ComDcb.BaudRate =115200; //波特率
break;
default:
break;
}
ComDcb.Parity=0; //奇偶校验
ComDcb.ByteSize=8; //数据位
ComDcb.StopBits=0; //停止位
CommTimeOuts.ReadIntervalTimeout =0; //字符允许间隔ms 该参数如果为最大值,会使readfile命令立即返回
CommTimeOuts.ReadTotalTimeoutMultiplier =0; //总的超时时间(对单个字节
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 178499 2010-07-10 15:09 Serial\4.htm
文件 6819 2010-07-12 13:16 Serial\Com.cpp
文件 414 2010-07-12 13:02 Serial\Com.h
文件 319865 2010-07-10 15:42 Serial\CreateThread(Win32 API) Afxbeginthread(MFC),_beginthreadex - wdswei的专栏 - CSDN博客.mht
文件 48564 2010-07-10 14:03 Serial\MFC串口操作(异步方式)源码_ikkoku01吧_贴吧.htm
文件 2658 2010-07-10 13:08 Serial\ReadMe.txt
文件 1184 2010-07-12 11:07 Serial\resource.h
文件 1928 2007-07-25 23:34 Serial\RuntimeException.cpp
文件 1158 2006-06-30 17:14 Serial\RuntimeException.h
文件 43632 2010-07-31 10:04 Serial\Serial.aps
文件 1452 2010-07-11 00:01 Serial\Serial.cpp
文件 435 2010-07-11 00:01 Serial\Serial.h
文件 134144 2010-07-31 15:25 Serial\Serial.ncb
文件 6290 2010-07-12 19:03 Serial\Serial.rc
文件 901 2010-07-10 13:08 Serial\Serial.sln
..A..H. 9728 2010-07-31 15:25 Serial\Serial.suo
文件 4989 2010-07-11 10:44 Serial\Serial.vcproj
文件 13662 2010-07-12 13:23 Serial\SerialDlg.cpp
文件 1890 2010-07-12 13:03 Serial\SerialDlg.h
文件 1057 2006-07-02 22:23 Serial\SerialPortObserver.cpp
文件 135 2010-07-10 13:08 Serial\stdafx.cpp
文件 1458 2010-07-10 13:08 Serial\stdafx.h
文件 2715 2010-07-11 10:14 Serial\Thread.cpp
文件 1248 2010-07-11 00:34 Serial\Thread.h
文件 315459 2010-07-10 15:50 Serial\多线程专题之MFC创建线程(2) - 章志强 - CSDN博客.mht
文件 354029 2010-07-12 12:31 Serial\如何用VC把计算机中一共有几个串口检测出来? - VC-MFC - 基础类.mht
文件 21630 2003-04-01 04:36 Serial\res\Serial.ico
文件 695 2010-07-10 13:08 Serial\res\Serial.manifest
文件 362 2010-07-10 13:08 Serial\res\Serial.rc2
文件 37659 2010-07-10 13:20 Serial\MFC串口操作(异步方式)源码_ikkoku01吧_贴吧.files\ba
............此处省略37个文件信息
评论
共有 条评论