Я пытаюсь создать консольную программу C++, которая сможет взаимодействовать через последовательный порт с моим микроконтроллером Arduino, однако у меня возникла проблема с функцией ReadFile():
Это код функции ReadFile() из моей консольной программы C++:
if(ReadFile(myPortHandle, &szBuf, 1, &dwIncommingReadSize, NULL) != 0)
{
cout<<"FOUND IT!"<<endl;
Sleep(100);
}
else
{
cout<<".";
Sleep(100);
}
Функция ReadFile постоянно возвращает значение «False», что означает, что она ничего не находит в последовательном порту. С другой стороны последовательного порта у меня подключен Arduino со следующим кодом:
int switchPin = 4; // Switch connected to pin 4
void setup() {
pinMode(switchPin, INPUT); // Set pin 0 as an input
Serial.begin(9600); // Start serial communication at 9600 bps
}
void loop() {
if (digitalRead(switchPin) == HIGH) { // If switch is ON,
Serial.write(1); // send 1 to Processing
} else { // If the switch is not ON,
Serial.write(0); // send 0 to Processing
}
delay(100); // Wait 100 milliseconds
}
И каждый раз, когда я нажимаю кнопку, я отправляю значение «1» в последовательный порт и «0» каждый раз, когда я не нажимаю кнопку. По сути, я получил код Arduino из учебника, который я смотрел, о том, как осуществлять последовательную связь с программой Processing (которая работала отлично), хотя я не могу сделать то же самое с простым консольным приложением, которое я сделал на C++, потому что по какой-то причине Функция ReadFile() не находит никакой информации в последовательном порту.
Кто-нибудь случайно не знает, почему?
P.S.: Полный код в консольной программе C++ можно найти здесь: .com/questions/27844956/c-console-program-serial-communication-arduino