Vorrei leggere dei valori di temperatura in c su linux, utilizzo la libreria Dallas su arduino e il codice è:
dtostrf(sensors.getTempCByIndex(0),3,2,buffer); //converto il float in una stringa
Serial.print(buffer);
Serial.print('\n');
delay(1000);
su linux invece:
FILE* f = fopen("/dev/ttyACM0","r+");
while((c = fgetc(f)) != '\n')
printf("%c",c);
questo codice mi fa generare una miriade di caratteri strani, alla fine però riesco a leggere la parte decimale...quindi mi esce tipo
**********************************************************.93 (se il valore inviato ad esempio è 24.93).
Sul monitor seriale di arduino invece tutto ok, ok anche se uso il c# come linguaggio sulla macchina e faccio una readline.