Hello,


je me remets doucement a la programmation de microcontroleur avr, après une pause relativement longue .

j'essaie de transmettre des données via UART (atmega to uart to usb) et je m'inspire de code que j'ai écrit il y a longtemps . lors de la transmition de données (le résultat d'un capteur d'humidité connecté a une broche ADC de mon atmega) j'ai systématiquement des données parasites a chaque transmission que je n'arrive pas a regler


voici les fonctions de ma transmition uart :

Code:
int printCHAR(char character, FILE *stream)
{
	while ((UCSRA & (1 << UDRE)) == 0) {};
	UDR = character;
	return 0;
}

FILE uart_str = FDEV_SETUP_STREAM(printCHAR, NULL, _FDEV_SETUP_RW);

void USARTInit(uint16_t ubrr_value)
{
	UBRRL = ubrr_value;
	UBRRH = (ubrr_value>>8);
	UCSRC=(1<<URSEL)|(3<<UCSZ0);
	UCSRB=(1<<RXEN)|(1<<TXEN);
	UCSRB |= (1 << RXEN) | (1 << TXEN);
	UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1);

}
voici le code qui envoie les données :

Code:
#define CRLF "\r\n" // Retour à la ligne

		fprintf (&uart_str,CRLF);
fprintf(&uart_str," Humidite: %u \r\n",Humidite_capteur());
la fonction Humidite_capteur est un un retour int du convertisseur analogique numérique de l'atmega.

seulement dans putty en communication avec le port com de mon convertisseur uart to usb, cela donne ça :
capteur.png


je ne comprend pas les caracteres parasite a la fin, et après avoir épluché la datasheet, je ne vois pas mon erreur .

Si quelqu'un a une idée ?

merci!!!