Loading...
Pages: [1]   Go Down
Author Topic: Problème de lecture avec le port série  (Read 307 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,

J'ai développé un programme en C, qui lit une chaîne envoyée par l'Arduino et la convertit ensuite en nombre. La réception de données se fait tout à fait normalement jusqu'à ce que j'upload un nouveau sketch sur mon Arduino. La réception de donnée par mon programme devient alors chaotique et la seule solution pour retrouver une réception normale est de redémarrer l'ordinateur.
Voilà, si quelqu'un a déjà eu un problème similaire, je le remercie d'avance pour son aide  smiley
Logged

France
Offline Offline
Edison Member
*
Karma: 12
Posts: 1800
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu n'est pas super clair.
Tu utilises quelle carte arduino?
C'est le même port serie de l'arduino qui sert pour le chargement et la transmission des données?
C'est le même port serie du PC qui sert pour le chargement et la réception des données? si oui le programme est-il fermé pendant l'upload?
Logged

France
Online Online
Faraday Member
**
Karma: 36
Posts: 4328
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'ai développé un programme en C, qui lit une chaîne envoyée par l'Arduino et la convertit ensuite en nombre. La réception de données se fait tout à fait normalement jusqu'à ce que j'upload un nouveau sketch sur mon Arduino. La réception de donnée par mon programme devient alors chaotique et la seule solution pour retrouver une réception normale est de redémarrer l'ordinateur.
L'upload d'un programme utilise le même port série que celui pour la communication avec l'ordi (logique).
Donc si ton programme tourne en parallèle il y a aura forcément des problémes.

(Ps: un programme C qui oblige à reboot sur une erreur ... ya comme un probléme dans la conception de ton code smiley-wink)
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Désolé pour le manque de clarté : J'utilise une Arduino Uno et j'utilise le même port pour la transmission des données et l'upload de mes sketches (/dev/ttyACM0 chez moi), mais évidemment pas en parallèle.

En fait on dirait qu'une fois que l'IDE Arduino a ouvert le port à sa manière, tout est déréglé, même en fermant l'IDE.
(Effectivement, et j'y travaille smiley-mr-green)
Logged

France
Offline Offline
Edison Member
*
Karma: 12
Posts: 1800
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
En fait on dirait qu'une fois que l'IDE Arduino a ouvert le port à sa manière, tout est déréglé, même en fermant l'IDE.
Lorsque ton application ouvre le port série elle doit le reconfigurer correctement (vitesse, nombre de bits de données, nb de bits de stop, parité)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci de ta réponse smiley Lorsque j'ouvre mon port j'utilise les flags :
Code:
    options.c_cflag |= (CLOCAL | CREAD);
    options.c_cflag &= ~PARENB;
    options.c_cflag &= ~CSTOPB;
    options.c_cflag &= ~CSIZE;
    options.c_cflag |= CS8;
et en 9600 Bauds.

Manquerait-il quelque chose ?
Logged

Pages: [1]   Go Up
Print
 
Jump to: