⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialport.h

📁 串口通信程序,适用于手机的软件更新
💻 H
字号:
// SerialPort.h: interface for the CSerialPort class.
//
//////////////////////////////////////////////////////////////////////

//---------------------------------------------------------------
//
//	作者: 徐进林

#if !defined(AFX_SERIALPORT_H__17EB47C2_4E28_443C_BCBC_0620E25028F4__INCLUDED_)
#define AFX_SERIALPORT_H__17EB47C2_4E28_443C_BCBC_0620E25028F4__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <afxtempl.h>

const int MAXBLOCK			= 2048;
//校验方式

const int PARITYNONE		= 0;
const int PARITYODD			= 1;
const int PARITYEVEN		= 2;
const int PARITYMARK		= 3;
const int PARITYSPACE		= 4;
//停止位
const int STOPBITONE		= 1;
const int STOPBITONE5		= 15;
const int STOPBITTWO		= 2;

class CSerialPort  
{
public:
	CSerialPort();
	virtual ~CSerialPort();

private:
	BOOL ConfigCom(void);
	//BOOL ConfigCom( int nBaudRate,int nByteSize,int nStopBits,int nParity);
public:
	//初始化串口
	BOOL InitComPort(const int nComPort = 1,
					const int nBaudRate = 9600,
					const int nByteSize = 8,
					const int nStopBits = 1,
					const int nParity = 0
					);
	//重新设置通讯方式
	BOOL ResetComPort(const int nBaudRate = 9600,
					const int nByteSize = 8,
					const int nStopBits = 1,
					const int nParity = 0
					);

	//读取字符
	BOOL RecvChar(void);
	//从串口输入缓冲区读入一个字符
	BOOL ReadCom(char &chIn);
	BOOL ReadCom(unsigned char &chIn);
	//向串口写一个字符
	BOOL WriteCom(char chOut);
	//向串口写一个字
	BOOL WriteCom(WORD wOut);
	//从串口输入缓冲区读取指定长度的字符
	DWORD ReadCom(char *pszBuff, DWORD dwLength);
	//把指定长度的字符串写到串口
	DWORD WriteCom(char *pszBuff, DWORD dwLength = -1);
	//接收缓冲区是否为空
	BOOL IsRecvBuffEmpty(void);
	//清空缓冲区
	void ClearBuff(void);
	//开始监视串口
	BOOL StartMonitor(void);
	//停止监视串口
	BOOL StopMonitor(void);
	//是否处于监视串口的状态
	BOOL IsInMonitor(void);
	//初始化串口是否成功
	BOOL IsInitComOk(void);
	//关闭串口
	void CloseCom(void);

private:
	//用于重叠读
	OVERLAPPED m_osRead;
	//用于重叠写
	OVERLAPPED m_osWrite;
	//代表辅助线程
	CWinThread* m_pThread;
	int m_nFlowCtrl;
	int m_nBaudRate;
	int m_nByteSize;
	int m_nParity;
	int m_nStopBits;
	CString m_szPort;

	CList <char, char> m_CharList;
	
	
	BOOL m_bInitComOk;

public:
	CFile m_File00;
	int stase,zero,type,bb,band_select;
	//CEdit	m_Stase;
	//是否处于监听状态
	volatile BOOL m_bMonitoring;
	//可以读数据的事件对象
	volatile HANDLE m_hCanReadEvent;
	//串行口句柄
	volatile HANDLE m_hCom;
	CRITICAL_SECTION m_csComSync;
};

#endif // !defined(AFX_SERIALPORT_H__17EB47C2_4E28_443C_BCBC_0620E25028F4__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -