Bagaimana cara mengkonfigurasi pengaturan port serial / dev / ttyAMA0?


9

Saya ingin mengakses port serial oleh beberapa file skrip BASH via / dev / ttyAMA0.

Bagaimana cara mengkonfigurasi pengaturan port serial seperti kecepatan, paritas genap / ganjil?

Jawaban:


6

Anda bisa menggunakan

stty -F /dev/ttyAMA0 9600

untuk mengatur baud rate ke 9600 dari baris perintah. Coba man sttylihat opsi lain.


6

Untuk mengkonfigurasi UART ttyAMA0 untuk aplikasi Anda (seperti 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-+---+------+---------+-----+-----+

Pin 8, GPIO14, TXD harus dalam mode ALT0 (pin ini adalah input data serial UART)

Pin 10, GPIO15, RXD, harus dalam mode ALT0 (pin ini adalah output data serial UART)

Baris perintah boot Anda akan terlihat seperti ini:

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

REBOOT PI

Hentikan proses yang dilampirkan ke / dev / ttyAMA0

Karena jessie versi OS telah berubah untuk menggunakan systemd, file / etc / initab tidak ada lagi. Anda harus menggunakan perintah systemd systemctl untuk menghentikan getty.target yang dilampirkan ke / dev / ttyAMA0

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

CATATAN: Ini akan melepaskan ttyAMA0 sampai Anda mem-boot ulang / memulai ulang raspberry pi. Setelah reboot, Anda harus memberikan perintah lagi.


Komentar yang direvisi: Saat ini dimungkinkan untuk mengubah kembali ke sysV initdan melakukannya tanpa systemdpada Raspbian "Jessie" - dengan cara yang sama seperti versi pendahulu "Wheezy" dapat dialihkan ke systemd . Namun, hanya para arkeolog yang meninjau kembali pertanyaan ini dari masa depan yang mungkin ingin mencapai ekstrem itu dan sebaliknya sebagian besar akan ingin mencari tahu bagaimana mengatur perubahan permanen yang akan bertahan setelah reboot ...
SlySven

1
"Pin 8, GPIO14, TXD harus dalam mode ALT0" - dan apa yang harus saya lakukan jika tidak?
mvmn

1
PS Nevermind - baru saja melakukan "gpio mode 15 ALT0" dan "gpio mode 16 ALT0" dan semuanya menjadi baik-baik saja.
mvmn

gpio readall=> gpio: command not foundpada Raspian 4.14 dapat diselesaikan: raspberrypi.stackexchange.com/questions/54116/…
AJP
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.