为了节省时间,我就贴出来吧
头文件 SerialPort.h
1 /*************************************************************************************************** 2 * SerialPort.h 3 * 4 * 功 能:串口通讯类 5 * 类 名:CSerialPort 6 * 7 * Ver 变更日期 负责人 变更内容 8 * ───────────────────────────────────────────────────── 9 * V1.0.0.0 2015年8月27日 金胖胖 新建 10 * 11 *****************************************************************************************************/ 12 13 #pragma once 14 #include "StdAfx.h" 15 16 #define FC_DTRDSR 0x01 17 #define FC_RTSCTS 0x02 18 #define FC_XONXOFF 0x04 19 #define ASCII_BEL 0x07 20 #define ASCII_BS 0x08 21 #define ASCII_LF 0x0A 22 #define ASCII_CR 0x0D 23 #define ASCII_XON 0x11 24 #define ASCII_XOFF 0x13 25 26 class CSerial 27 { 28 public: 29 CSerial(); 30 ~CSerial(); 31 32 // 打开串口 33 BOOL Open( int nPort = 2, int nBaud = 9600 ); 34 35 // 关闭串口 36 BOOL Close( void ); 37 38 // 读取数据 39 int ReadData( void *, int ); 40 41 //发送数据 42 int SendData( const char *, int ); 43 44 // 45 int ReadDataWaiting( void ); 46 47 // 是否打开串口 48 BOOL IsOpened( void ); 49 50 // 清空缓冲区 51 void ClearBuffer(void); 52 53 // 获取计算机中的所有串口号 54 vector<string> GetPortNames(); 55 56 // 十六进制数据 转换到 字符串 57 CString HexToStr(unsigned char *lpDataBuffer,int Total); 58 protected: 59 60 BOOL WriteCommByte( unsigned char ); 61 HANDLE m_hIDComDev; // 串口文件句柄 62 OVERLAPPED m_OverlappedRead; 63 OVERLAPPED m_OverlappedWrite; 64 BOOL m_bOpened; // 是否打开标识 65 };