Comment configurer les paramètres du port série de / dev / ttyAMA0?

9

Je veux accéder au port série par certains fichiers de script BASH via / dev / ttyAMA0.

Comment configurer les paramètres du port série comme la vitesse, la parité paire / impaire?

Robert
la source

Réponses:

6

Vous pouvez utiliser

stty -F /dev/ttyAMA0 9600

pour définir le débit en bauds à 9600 à partir de la ligne de commande. Essayez man sttyde voir d'autres options.

lenik
la source
6

Pour configurer l'UART ttyAMA0 pour votre application (comme minicom)

pi@raspberrypi:~ $ lsb_release -a
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 8.0 (jessie)
Release:        8.0
Codename:       jessie
pi@raspberrypi:~ $ gpio readall

+-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+
| BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
|     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |    |     |
|   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |
|   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
|   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
|     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
|  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
|  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
|  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 1 | IN   | GPIO. 4 | 4   | 23  |
|     |     |    3.3v |      |   | 17 || 18 | 1 | IN   | GPIO. 5 | 5   | 24  |
|  10 |  12 |    MOSI |   IN | 0 | 19 || 20 |   |      | 0v      |     |     |
|   9 |  13 |    MISO |   IN | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
|  11 |  14 |    SCLK |   IN | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
|     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
|  28 |  17 | GPIO.17 |   IN | 0 | 51 || 52 | 0 | IN   | GPIO.18 | 18  | 29  |
|  30 |  19 | GPIO.19 |   IN | 0 | 53 || 54 | 0 | IN   | GPIO.20 | 20  | 31  |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
+-----+-----+---------+------+---+-Model B2-+---+------+---------+-----+-----+

Les broches 8, GPIO14, TXD doivent être en mode ALT0 (cette broche est l'entrée de données série UART)

La broche 10, GPIO15, RXD, doit être en mode ALT0 (cette broche est la sortie de données série UART)

Votre ligne de commande de démarrage devrait ressembler à ceci:

pi@raspberrypi:~ $ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Redémarrez le PI

Arrêtez le processus attaché à / dev / ttyAMA0

Étant donné que la version du système d'exploitation Jessie a changé pour utiliser systemd, le fichier / etc / initab n'existe plus. Vous devez utiliser la commande systemd systemctl pour arrêter getty.target qui est attaché à / dev / ttyAMA0

pi@raspberrypi:~ $ sudo systemctl stop getty.target

REMARQUE: Cela libérera ttyAMA0 jusqu'à ce que vous redémarriez / redémarriez le raspberry pi. Après avoir redémarré, vous devrez donner à nouveau la commande.

Dale Noble
la source
Commentaire révisé: Il est actuellement possible de revenir à sysV initet sans le faire systemdsur Raspbian « Jessie » - de la même manière que la version précédente « Wheezy » pourrait être mis à systemd . Cependant, seuls les archéologues revisitant cette question du futur sont susceptibles de vouloir atteindre cet extrême et à la place, la plupart voudront découvrir comment définir un changement permanent qui survivra à un redémarrage ...
SlySven
1
"Les broches 8, GPIO14, TXD doivent être en mode ALT0" - et que dois-je faire si ce n'est pas le cas?
mvmn
1
PS Nevermind - vient de faire "mode gpio 15 ALT0" et "mode gpio 16 ALT0" et tout s'est bien passé.
mvmn
gpio readall=> gpio: command not foundsur Raspian 4.14 peut être résolu: raspberrypi.stackexchange.com/questions/54116/…
AJP