мне нужно общаться с Arduino с помощью C++, я попробовал этот код на C++:Последовательная связь между C++ и Arduino
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
int j=5;
main()
{
fstream arduino;
arduino.open("/dev/ttyACM0",ios::in | ios::out);
//Opening device file
if(!arduino)
cout<<"error";
arduino<<2;
arduino.clear();
arduino>> j;
cout <<j;
arduino.close();
return 0;
}
Arduino код:
int p;
void setup()
{
pinMode(13,OUTPUT);
Serial.begin(9600);
}
void loop()
{
if(Serial.available())
{
p=Serial.read();
if(p!=-1)
{
Serial.write(1);
digitalWrite(13,HIGH);
delay(5000);
}
}
else
{
digitalWrite(13,LOW);
delay(1000);
}
}
Так, согласно этому коду, когда это когда-либо C++-код запускает вывод 13 на arduino slow в течение 5 секунд, а cout должен печатать 1. Но вместо этого светодиод не светится, а cout печатает 5, которые (см. это изначально j = 5). Я использую эту программу для тестовую последовательную связь между C++ и arduino. Но я не знаю, что происходит. Также нам нужна любая специальная библиотека для последовательной связи? Является ли мой код в порядке? Пожалуйста, помогите мне.
@MANDY: Перед запуском программы на C++ убедитесь, что вы настраиваете правильную скорость передачи, контроль четности, управление потоком и т. Д. Например, утилита 'stty' может помочь с этим. –