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

📄 serialport.h

📁 帮助VC的初学者了解向导生成程序的整体结构 Visual C++串口通信
💻 H
字号:
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

// 定义一个串口类用于串口操作
#define SERIALBUF   6000

class AFX_EXT_CLASS CSerialPort
{
public:
	CString m_strPortName;
	HANDLE  m_hPort;
	DWORD   m_BaudRate;
	BYTE    m_StopBits;
	BYTE    m_ByteSize;
	BYTE    m_Parity;      // 0-4,no,odd,even,mark,space
	DWORD	m_dwBufferSize;
	OVERLAPPED m_ovWait;
	OVERLAPPED m_ovRead;
	OVERLAPPED m_ovWrite;

public:
	CSerialPort();
	~CSerialPort();
	BOOL PortSetup(int PortID,DWORD dwBaud,DWORD dwBuffer=SERIALBUF);
	void ClosePort();
	BOOL Initialize();
	int  ReadComm(char *pbuf,DWORD dwLen);
	BOOL WriteComm(const char *pbuf,DWORD dwLen);
	void ProcessErrorMessage(char *pszErrorText);
};

//////////////////////////////////////////////////////////////////////////////
class AFX_EXT_CLASS CSerialCtrl
{
public:
	CSerialPort	m_Port;
	DWORD	m_dwRecvThdID;
	HANDLE	m_hRecvThd;
	char	m_szRecvBuffer[SERIALBUF];
	HANDLE	m_hSend;
	BOOL	m_bRecvRun;

public:
	CSerialCtrl();
	~CSerialCtrl();
	BOOL Start(int PortID,DWORD dwBaud,DWORD dwBuffer=SERIALBUF,int nPriority=0);
	void End();
	virtual void OnRecvData(char *pBuffer,int nLen);
	virtual void OnEvCTS(DWORD dwStatus);
	virtual void OnEvDSR(DWORD dwStatus);
	virtual void OnEvRLSD(DWORD dwStatus);
	//
	BOOL SendData(char *pBuffer,int nLen);
	void SetRTS();
	void ClearRTS();
	void SetDTR();
	void ClearDTR();
};

⌨️ 快捷键说明

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