Buon giorno a tutti.
Sto provando da un po' a leggere degli output di arduino via codice .
La scheda è "nuda", cioè è solo stata attaccata via USB al pc, il sistema operativo è ubuntu 14.04.
Questo è il codice di Arduino (uno), la porta scritta in basso a destra dell'ide è "/dev/ttyACM0"
void setup() {
Serial.begin(9600); // opens serial port, sets data rate
Serial.println("INIZIO");
}
void loop() {
Serial.println("prova");
delay(2000);
}
questo è il codice in c++
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
char serialPortFilename[] = "/dev/ttyACM0";
main()
{
char readBuffer[1024];
int numBytesRead;
FILE *serPort = fopen(serialPortFilename, "r");
if(serPort == NULL)
{
cout << "ERROR: serial port don't found!!" << endl;
}
cout << serialPortFilename << ": ";
while(1)
{
memset(readBuffer, 0, sizeof(readBuffer));
fread (readBuffer, sizeof(char), 1024, serPort);
if(sizeof(readBuffer != 0))
{
cout << readBuffer;
}
}
Eseguendo il programma mi stampa il messaggio di errore e non riesco a leggere quelle che arduino scrive nella porta seriale,
aggiungo che se al codice di arduino aggiungo "Serial.available" mi ritorna sempre 0.
Ho provato anche a:
cambiare usb,
cambiare porta seriale,
imprecare..
Grazie, Buona giornata.