Witam, chcę napisać program który będzie działał na podobnej zasadzie jak Serial monitor w Arduino IDE.
Wiem już że do tego celu można użyć funkcji CreateFile(), WriteFile(), ReadFile() ale jak na razie jedyne co udało mi się zrobić to program który mówi mi czy można otworzyć port COM1 (to jest port na którym mam podłączone Arduino UNO) a wygląda on tak:
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
int main()
{
HANDLE hComm = CreateFile( "COM1",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);
if (hComm == INVALID_HANDLE_VALUE)
{
DWORD lastError = GetLastError();
cout<<"ERROR = "<<lastError<<endl;
}
else cout<<"COM1 open!"<<endl;
CloseHandle(hComm);
}
A gdy próbowałem z funkcją ReadFile() to nie potrafię odczytać tego co nadaje Arduino.
Kod Arduino:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Test");
delay(100);
}
Uprzedzam pytanie: jeżeli włączam Serial Monitor to wszystko działa tak jak powinno (co 100ms dostaje wiadomość "Test") więc nie jest problem z Arduino.
Z góry dzięki za odpowiedzi :)