Communication série en USB entre RPi et Arduino Uno

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour, je souhaite réaliser une communication série entre une Arduino et une RPi via l’USB. Cependant j’ai un petit problème. Je ne reçois pas les bonnes valeurs (et pas toujours les mêmes).J’ai fait un test simple : la RPi envoie un caractère et l’Arduino doit le renvoyer.

Voici le code de l’Arduino :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  while (Serial.available())  {
    Serial.println(Serial.read());
  }
  delay(10);
}

Et celui de la RPi :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <iostream>
#include <wiringSerial.h>

using namespace std;

main ()
{
    int fd = serialOpen ("/dev/ttyACM0", 9600) ;
    if (fd < 0)
    {
        cout << "ERREUR DE CONNEXION" << endl;
        return -1;
    }

    int car = 0;

    cout << "Envoie 'A'..." << endl;
    serialPutchar (fd, 'A') ;
    if((car = serialGetchar(fd)) < 0)
        cout << "ERREUR DE RÉCEPTION" << endl;
    cout << "Reçu : " << (char) car << " (" << car << ")" << endl;

    cout << "Envoie 'b'..." << endl;
    serialPutchar (fd, 'b') ;
    if((car = serialGetchar(fd)) < 0)
        cout << "ERREUR DE RÉCEPTION" << endl;
    cout << "Reçu : " << (char) car << " (" << car << ")" << endl;

    cout << "Envoie 't'..." << endl;
    serialPutchar (fd, 't') ;
    if((car = serialGetchar(fd)) < 0)
        cout << "ERREUR DE RÉCEPTION" << endl;
    cout << "Reçu : " << (char) car << " (" << car << ")" << endl;
}

Et voici ce que j’obtiens :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
pi@raspberrypi:~/testCom $ ./a.out
Envoie 'A'...
Reçu : 1 (49)
Envoie 'b'...
Reçu : 1 (49)
Envoie 't'...
Reçu : 6 (54)
pi@raspberrypi:~/testCom $ ./a.out
Envoie 'A'...
ERREUR DE RÉCEPTION
Reçu : ▒ (-1)
Envoie 'b'...
Reçu : 9 (57)
Envoie 't'...
Reçu : 8 (56)
pi@raspberrypi:~/testCom $ ./a.out
Envoie 'A'...
Reçu :
 (10)
Envoie 'b'...
ERREUR DE RÉCEPTION
Reçu : ▒ (-1)
Envoie 't'...
Reçu : 1 (49)

`

Je pense que c’est qqch de tout con, mais je ne vois pas. J’espère que vous pourrez m’aider !

Merci d’avance, Siméon.

La curiosité est le plus beau des défauts

+0 -0
Auteur du sujet

J’ai enlevé le delay et j’ai rajouté une tempo entre les envoies (bon à l’arrache, j’ai for un for qui compte 100 000 :D) mais ça ne change rien. J’ai toujours les mêles résultats :/

La curiosité est le plus beau des défauts

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte