Bonjour à tous,

Je voudrais récupérer la température d'une sonde DS18B20 connecté à un DS2480 qui est un convertisseur OneWire/série lui meme connecté à un pc sous debian.
Mon montage marche nikel avec digitemp, j'arrive à lire la sonde. Je voudrais maintenant me faire un petit programme en C pour faire la même choses pour me permettre d'enregistrer les relevés dans une base de données.

J'ai déjà codé ça :

Code:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>



int main(void)
{ 
	int port_serie;
	struct termios options;
	int reception;
	char buffer[10] = "";
	
	
	port_serie = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);
	
	if(port_serie < 0)
	{
		perror("Port serie ouvert");
		exit(-1);
	}
	
	else
	{
		printf("Port serie bien ouvert. \n");
		printf("Port serie %d. \n", port_serie);
		
		
		tcgetattr(port_serie, &options);
		cfsetospeed(&options, B9600);
		options.c_cflag |= (CLOCAL | CREAD);
		options.c_cflag &= ~PARENB; 
		options.c_cflag &= ~CSTOPB; 
		options.c_cflag &= ~CSIZE; 
		options.c_cflag |= CS8;
		tcsetattr(port_serie, TCSANOW, &options);
		printf("Configuration OK !. \n");
		
		// Envoie de donnees.
		printf("Envoie des donnees en cours ... \n");
		if (write(port_serie, "0xCD", 2) < 0){perror("write:");}
		printf("Envoie Termine. \n");
		
		// Lecture des donnees.
		printf("Lecture des donnees en cours ... \n");
		fcntl(port_serie,F_SETFL,10);
		
		reception=read(port_serie,buffer,100);
		printf("J'ai lu %d charactères: %s\n",reception,buffer);
		
		if (reception == -1)
			printf("Erreur lecture port serie\n");
		
		printf("Reception fini.\n" );
		
	}
	
	close(port_serie);
}
l'envoie du 0xCD devrait me renvoyer CD ou ED d'après les datasheet : http://vesta.homelinux.free.fr/site/wiki/ds2480b.pdf , page 11. Mais à la place j'ai "gC". Auriez vous une idée du problème? Merci