Salve ragazzi mi sono appena iscritto al forum, sono giorni ormai che spulcio su e giù per la rete in cerca di una risposta al mio quesito ma purtroppo non ne sono ancora venuto a capo
Dunque, sto facendo un piccolissimo programma in C per comunicare con Arduino, quello che vorrei fare è inviare/ricevere dati tramite la porta seriale (nel mio caso specifico la COM9).

Venendo al punto per l'invio dei dati ad arduino non ci dovrebbero essere problemi, ho creato uno sketch semplicissimo (conteggia quante volte riceve il carattere 'a' dalla seriale (utilizzando la funzione Serial.read() ) e se il numero di volte è pari accende un led altrimenti lo spegne), mentre dal lato C ho scritto quanto segue:
codice:
#include <stdio.h>
#include <stdlib.h>
int main(){
	FILE *file;
	system("mode com9: baud=9600 parity=o data=8 stop=1 xon=off");
	if((file = fopen("COM9", "wb+"))==NULL)
		printf("Errore");
	fprintf(file, "a");
	fclose(file);
        system("PAUSE");
        return 0;
}
All'inizio non funzionava troppo bene, poichè omettevo la funzione "system("mode com9: baud=9600 parity=o data=8 stop=1 xon=off");" che ho trovato su internet e della quale non ho ancora ben compreso il funzionamento (se qualcuno fosse così gentile da spiegarmelo gli sarei più che grato )
Comunque per quanto riguarda l'invio del carattere tutto ok piu o meno..il vero problema sta nella ricezione!
Nello sketch di arduino ho provato ad inserire un "Serial.println("ciaomondo");" e con il programma in C ho provato a scrivere:
codice:
	char string[50];
	fscanf(file,"%s", string);
	printf("str: %s \n", string);
	rewind(file);
senza alcun risultato purtroppo..
Sareste così gentili da spiegarmi dove sbaglio?
E per la funzione "system("mode com9: baud=9600 parity=o data=8 stop=1 xon=off");" che mi dite?

Ringrazio in anticipo chiunque vorrà rispondere!
Ciao!!!
Vincenzo