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

📄 serialport.h

📁 用Win32API建立的一个串口通信类,侧重于异步通信方式,做用来做串口通信很方便.
💻 H
字号:
#pragma once

#define WM_COMM_BREAK_DETECTED		WM_COMM_USER+1
#define WM_COMM_CTS_DETECTED		WM_COMM_USER+2
#define WM_COMM_DSR_DETECTED		WM_COMM_USER+3
#define WM_COMM_ERR_DETECTED		WM_COMM_USER+4
#define WM_COMM_RING_DETECTED		WM_COMM_USER+5
#define WM_COMM_RLSD_DETECTED		WM_COMM_USER+6
#define WM_COMM_RXCHAR				WM_COMM_USER+7
#define WM_COMM_RXFLAG_DETECTED		WM_COMM_USER+8
#define WM_COMM_TXEMPTY				WM_COMM_USER+9


class CSerialPort
{
public:
	CSerialPort(void);
	~CSerialPort(void);
private:
	DCB m_Dcb;
	UINT m_nBufferIn;
	UINT m_nBufferOut;
	COMMTIMEOUTS m_nTimeOut;
	volatile HANDLE m_hCommu;
	volatile UINT m_nPort;
	OVERLAPPED m_OvlpRead;
	OVERLAPPED m_OvlpWrite;
	//volatile HANDLE m_comHandle;
	void Init(void);
public:
	
	void Close(void);
private:
	// 记录串口是否已经打开
	bool m_bOpen;
public:
	bool Open(UINT nPort,DWORD BaudRate=9600, BYTE ByteSize = 8, 
			  BYTE Parity = NOPARITY, BYTE StopBits = ONESTOPBIT);
	//call before opening the port
	void InitBufferSize(UINT nBufferIn, UINT nBufferOut);
	bool WriteData(BYTE* pWriteBuff, WORD nWrite);
				//发送数据时将清空发送和接收数据缓冲区,
				//并终止当前的发送和接收操作
	DWORD ReadData(BYTE* pReadBuff, WORD nRead);
	bool SetParityBit(BYTE nParity);
};

⌨️ 快捷键说明

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