Wie konfiguriere ich die Einstellungen für die serielle Schnittstelle von / dev / ttyAMA0?


9

Ich möchte über einige BASH-Skriptdateien über / dev / ttyAMA0 auf die serielle Schnittstelle zugreifen.

Wie konfiguriere ich die Einstellungen für die serielle Schnittstelle wie Geschwindigkeit, Parität gerade / ungerade?

Antworten:


6

Sie können verwenden

stty -F /dev/ttyAMA0 9600

um die Baudrate über die Befehlszeile auf 9600 einzustellen. Versuchen Sie man stty, andere Optionen anzuzeigen.


6

So konfigurieren Sie den UART ttyAMA0 für Ihre Anwendung (wie 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-+---+------+---------+-----+-----+

Die Pins 8, GPIO14, TXD müssen sich im Modus ALT0 befinden (dieser Pin ist der serielle UART-Dateneingang).

Pin 10, GPIO15, RXD müssen sich im Modus ALT0 befinden (dieser Pin ist der serielle UART-Datenausgang).

Ihre Boot-Befehlszeile sollte folgendermaßen aussehen:

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

Starten Sie den PI neu

Stoppen Sie den an / dev / ttyAMA0 angehängten Prozess

Da die Betriebssystemversion jessie auf systemd umgestellt wurde, ist die Datei / etc / initab nicht mehr vorhanden. Sie müssen den Befehl systemd systemctl verwenden, um getty.target zu stoppen, das an / dev / ttyAMA0 angehängt ist

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

HINWEIS: Dadurch wird ttyAMA0 freigegeben, bis Sie den Himbeer-Pi neu starten / neu starten. Nach dem Neustart müssen Sie den Befehl erneut eingeben.


Überarbeitete Kommentar: Es ist derzeit möglich SysV zu ändern zurück initund tun , ohne systemdauf Raspbian „Jessie“ - auf die gleiche Weise wie die Vorgängerversion „Wheezy“ geschaltet werden konnte zu systemd . Allerdings werden wahrscheinlich nur Archäologen, die diese Frage aus der Zukunft erneut betrachten, dieses Extrem erreichen wollen, und stattdessen werden die meisten herausfinden wollen, wie eine dauerhafte Änderung vorgenommen werden kann, die einen Neustart überlebt ...
SlySven

1
"Pins 8, GPIO14, TXD müssen sich im Modus ALT0 befinden" - und was mache ich, wenn dies nicht der Fall ist?
mvmn

1
PS Nevermind - habe gerade "gpio mode 15 ALT0" und "gpio mode 16 ALT0" gemacht und alles wurde gut.
mvmn

gpio readall=> gpio: command not foundauf Raspian 4.14 kann gelöst werden: raspberrypi.stackexchange.com/questions/54116/…
AJP
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.