Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- using namespace std;
- int main() {
- /****************************
- CONFIGURACION DEL PUERTO COM
- ****************************/
- HANDLE hSerial;
- hSerial = CreateFile("COM3",
- GENERIC_READ | GENERIC_WRITE,
- 0,
- 0,
- OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL,
- 0);
- if(hSerial==INVALID_HANDLE_VALUE){
- if(GetLastError()==ERROR_FILE_NOT_FOUND){
- cout << "The COM port doesn't exist" << endl;
- }
- cout << "Error: Invalid Handle" << endl;
- }
- DCB dcbSerialParams = {0};
- dcbSerialParams.DCBlength=sizeof(dcbSerialParams); // Esta linea esta mal en el PDF (aqui esta bien)
- if (!GetCommState(hSerial, &dcbSerialParams)) {
- cout << "Error getting state" << endl;
- }
- dcbSerialParams.BaudRate=CBR_9600;
- dcbSerialParams.ByteSize=8;
- dcbSerialParams.StopBits=ONESTOPBIT;
- dcbSerialParams.Parity=NOPARITY;
- if(!SetCommState(hSerial, &dcbSerialParams)){
- cout << "Error setting serial port state" << endl;
- }
- COMMTIMEOUTS timeouts={0};
- timeouts.ReadIntervalTimeout=50;
- timeouts.ReadTotalTimeoutConstant=50;
- timeouts.ReadTotalTimeoutMultiplier=10;
- timeouts.WriteTotalTimeoutConstant=50;
- timeouts.WriteTotalTimeoutMultiplier=10;
- if(!SetCommTimeouts(hSerial, &timeouts)){
- cout << "Error Setting time out" << endl;
- }
- /********************
- TRANSMISION DE DATOS
- ********************/
- char szBuff[1] = {0};
- DWORD dwBytesRead = 0;
- char palabra[64]; // 8 * 8
- while (palabra[0] != '!') {
- cout << "Palabra (! para salir): ";
- cin >> palabra;
- cout << endl;
- unsigned short int i = 0;
- while (palabra[i] != 0) {
- szBuff[0] = palabra[i];
- if(!WriteFile(hSerial, szBuff, 1, &dwBytesRead, NULL)){
- cout << "No se pudo" << endl;
- break;
- }
- i++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement