📄 serialport.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 + -