1、SerialComm.h成员变量,成员函数声明
#pragma once
#define WM_COMM_RX 0x0400 + 500 //串口消息接收信号宏定义
#define REV_LEN 1000 //接收的字节数
class CSerialComm
{
public:
CSerialComm();
~CSerialComm();
public:
BOOL OpenComm(LPCTSTR lpFileName);
void SetCommStat(DCB mDcbComm);
BOOL GetCommStat(DCB* mDcbComm);
BOOL ReadFileStat();
BOOL WriteFileStat(char *p, UINT len);
BOOL CloseHandleStat();
//读取线程,读取串口数据
static unsigned int __stdcall OnRecv(void*);
void CreateRecvThread(); //创建读取数据线程
private:
BOOL m_nWorkIng;
public:
CWinThread* m_pThread; //线程指针
COMMTIMEOUTS m_nTimeout;
DCB m_nDcb;
HANDLE m_hComm;
CString m_nOutputContext;
char m_nInputContext[1000];
CString m_revData;
DWORD m_nReceiveNum;
HWND m_hWnd;
};
2、打开串口
BOOL CSerialComm::OpenComm(LPCTSTR lpFileName)
{
m_hComm = CreateFile(lpFileName, GENERIC_READ | GENERIC_WRITE,0, NULL, OPEN_EXISTING, 0, NULL);