1 Star 0 Fork 1

shixiaobin0702/串口通讯

forked from wanghanlin/串口通讯 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
SerialPort.h 2.69 KB
一键复制 编辑 原始数据 按行查看 历史
wanghanlin 提交于 2021-05-26 13:52 . 串口通讯
#ifndef CSERIALPORT_H
#define CSERIALPORT_H
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <mutex>
#include <process.h>
#include <Windows.h>
using namespace std;
class CSerialPort
{
public:
CSerialPort();
~CSerialPort();
public:
BOOL OpenComm(int id);
BOOL SetCommState(int id, DWORD dwBaudrate, BYTE byParity, BYTE byByteSize, BYTE byStopBits);
BOOL SetupComm(int id, DWORD dwInQueue, DWORD dwOutQueue);
BOOL PurgeComm(int id, DWORD dwFlags);
BOOL SetCommMask(int id, DWORD dwEvtNask);
// BOOL WriteFile(
// IN LPCVOID lpBuffer, // 写入的数据存储的地址:即以该指针的值为首地址的nNumberOfBytesToWrite个字节的数据将要写入
// //串口的发送数据缓冲区。
// IN DWORD nNumberOfBytesToWrite, //要写入的数据的字节数
// OUT LPDWORD lpNumberOfBytesWritten,// 指向指向一个DWORD数值,该数值返回实际写入的字节数
// IN LPOVERLAPPED lpOverlapped// 重叠操作时,该参数指向一个OVERLAPPED结构;同步操作时,该参数为NULL。
// );
BOOL WriteFile(int id, string strsend);
BOOL ReadFile(int id,
OUT LPVOID lpBuffer,// 读入的数据存储的地址:即读入的数据将存储在以该指针的值为首地址的一片内存区
IN DWORD nNumberOfBytesToRead, // 要读入的数据的字节数
OUT LPDWORD lpNumberOfBytesRead,// 指向一个DWORD数值,该数值返回读操作实际读入的字节数
IN LPOVERLAPPED lpOverlapped// 重叠操作时,该参数指向一个OVERLAPPED结构,同步操作时,该参数为NULL
);
BOOL ClearCommError(int id, OUT LPDWORD lpError, OUT LPCOMSTAT lpStat);
BOOL GetOverlappedResult( int id,
IN LPOVERLAPPED lpOverlapped,//指向重叠操作开始时指定的OVERLAPPED结构
OUT LPDWORD lpNumberOfBytesTransferred,//指向一个32位变量,该变量的值返回实际读写操作传输的字节数。
IN BOOL bWait// 该参数用于指定函数是否一直等到重叠操作结束:如果该参数为TRUE,函数直到操作结束才返回;
//如果该参数为FALSE,函数直接返回,这时如果操作没有完成,通过调用GetLastError()函数会
//返回ERROR_IO_INCOMPLETE。
);
void CloseComm(int id);
string Hex2Ascii(string& hexStr);
string str2Hexstr(string &str) ;
public:
void StartComm(int id);
void StopComm(int id);
void ReceivedClear(int id);
void ReceivedPush(int id, string str);
string ReceivedPop(int id);
int ReceivedSize(int id);
public:
HANDLE m_hComm[5];
bool m_startComm;
private:
vector<string> m_Received[5];
mutex m_mutex[5];
};
#endif // MAINWINDOW_H
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C/C++
1
https://gitee.com/shixiaobin0702/serial-communication.git
[email protected]:shixiaobin0702/serial-communication.git
shixiaobin0702
serial-communication
串口通讯
master

搜索帮助