Liaison SERIE-USB microcontroleur linux

alexesiee Messages postés 1 Date d'inscription vendredi 4 juin 2010 Statut Membre Dernière intervention 4 juin 2010 - 4 juin 2010 à 15:29
katerson Messages postés 47 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 24 juin 2011 - 7 juin 2010 à 14:12
Bonjour,

Je travaille sur un microcontroleur ATmega32 que je développe sous windows. Le microcontroleur est programmé pour envoyer des données (caractères ascii en décimal) à des intervalles réguliers. Je souhaiterai ensuite récupéré ces données sur un ordinateur sous linux. Je possède une liaison série(RS232)-USB (câble serie-usb) pour communiquer avec l'ordinateur. Pour récupérer les données j'ai créer un programme C qui essaye de lire le port. Mais les données lu ne correspondent pas à celles attendues. Si vous pouvez m'aider, merci.

#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include

int main()
{
int f= open("/dev/ttyUSB0", O_RDONLY), r, n=1;
char c;

assert(f > 0);
while (r=read(f,&c,1) > 0){
printf("%d catactere lu: %c\n", n++, c);
}
return 0;
}

1 réponse

katerson Messages postés 47 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 24 juin 2011
7 juin 2010 à 14:12
Le périphérique est en RS232 et tu as un adaptateur USB pour ton pc, c'est bien cela?

Je te conseille tout d'abord d'utiliser un outil pour espionner la communication et récupérer les messages échangés(peut être en as-tu livré un avec l'adaptateur sinon recherche sur le web).

Ainsi, tu vérifies que la communication fonctionne comme il se doit (que les messages souhaités sont bien envoyé).

Si c'est le cas, il va falloir s'orienter côté code (qui au passage me semble correct)... Pense a bien initialiser ton CHAR!
0
Rejoignez-nous