Skip to content

Instantly share code, notes, and snippets.

@aneury1
Created December 16, 2023 11:28
Show Gist options
  • Save aneury1/f93cd26d987786e1e6e219df0ed99590 to your computer and use it in GitHub Desktop.
Save aneury1/f93cd26d987786e1e6e219df0ed99590 to your computer and use it in GitHub Desktop.
#include <Windows.h>
#include <iostream>
int main() {
// Open the serial port
HANDLE hSerial = CreateFile("COM9", GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hSerial == INVALID_HANDLE_VALUE) {
std::cerr << "Error opening serial port\n";
return 1;
}else{
std::cout <<"PORT is open";
}
// Set the serial port parameters
DCB dcbSerialParams = { 0 };
dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
if (!GetCommState(hSerial, &dcbSerialParams)) {
std::cerr << "Error getting serial port state\n";
CloseHandle(hSerial);
return 1;
}
dcbSerialParams.BaudRate = CBR_115200;
dcbSerialParams.ByteSize = 8;
dcbSerialParams.StopBits = ONESTOPBIT;
dcbSerialParams.Parity = NOPARITY;
if (!SetCommState(hSerial, &dcbSerialParams)) {
std::cerr << "Error setting serial port state\n";
CloseHandle(hSerial);
return 1;
}
// Read data from the serial port
char buffer[100];
DWORD bytesRead;
while (true) {
if (ReadFile(hSerial, buffer, sizeof(buffer), &bytesRead, NULL)) {
if (bytesRead > 0) {
// Process the received data
std::cout.write(buffer, bytesRead);
}
} else {
std::cerr << "Error reading from serial port\n";
break;
}
}
// Close the serial port
CloseHandle(hSerial);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment