Created
December 16, 2023 11:28
-
-
Save aneury1/f93cd26d987786e1e6e219df0ed99590 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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