C++不占用串口,串口监控demo
时间: 2023-08-12 22:32:37 浏览: 53
好的,可以尝试以下这个简单的串口监控demo代码:
```c++
#include <iostream>
#include <Windows.h>
int main()
{
HANDLE hCom;
char buffer[1024];
DWORD bytesRead;
hCom = CreateFileA("COM1", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
if (hCom == INVALID_HANDLE_VALUE) {
std::cout << "Failed to open COM port!\n";
return 1;
}
DCB dcb;
memset(&dcb, 0, sizeof(DCB));
dcb.DCBlength = sizeof(DCB);
if (!GetCommState(hCom, &dcb)) {
std::cout << "Failed to get COM port state!\n";
CloseHandle(hCom);
return 1;
}
dcb.BaudRate = CBR_9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
if (!SetCommState(hCom, &dcb)) {
std::cout << "Failed to set COM port state!\n";
CloseHandle(hCom);
return 1;
}
while (true) {
if (!ReadFile(hCom, buffer, sizeof(buffer), &bytesRead, NULL)) {
std::cout << "Failed to read from COM port!\n";
CloseHandle(hCom);
return 1;
}
if (bytesRead > 0) {
std::cout << "Received " << bytesRead << " bytes: " << buffer << "\n";
}
Sleep(100);
}
CloseHandle(hCom);
return 0;
}
```
这个代码使用Windows API函数来打开COM1串口,并设置波特率为9600,然后不断从串口读取数据并输出。你可以将此代码编译运行后打开串口监视器,向串口发送数据,就能看到程序输出了。