วิธีกำหนดการตั้งค่าพอร์ตอนุกรมของ / dev / ttyAMA0


9

ฉันต้องการเข้าถึงพอร์ตอนุกรมโดยไฟล์สคริปต์ BASH บางไฟล์ผ่าน / dev / ttyAMA0

ฉันจะกำหนดการตั้งค่าพอร์ตอนุกรมเช่นความเร็วความเท่าเทียมกัน / คี่ได้อย่างไร

คำตอบ:


6

คุณสามารถใช้

stty -F /dev/ttyAMA0 9600

เพื่อตั้งอัตรา baud เป็น 9600 จากบรรทัดคำสั่ง ลองman sttyดูตัวเลือกอื่น ๆ


6

ในการกำหนดค่า UART ttyAMA0 สำหรับแอปพลิเคชันของคุณ (เช่น 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-+---+------+---------+-----+-----+

พิน 8, GPIO14, TXD ต้องอยู่ในโหมด ALT0 (พินนี้คืออินพุตข้อมูลอนุกรม UART)

พิน 10, GPIO15, RXD ต้องอยู่ในโหมด ALT0 (พินนี้คือเอาท์พุทข้อมูลอนุกรม UART)

บรรทัดคำสั่งสำหรับบูตของคุณควรมีลักษณะดังนี้:

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

รีบูต PI

หยุดกระบวนการที่เชื่อมต่อกับ / dev / ttyAMA0

เนื่องจาก OS เวอร์ชัน jessie เปลี่ยนไปใช้ systemd ไฟล์ / etc / initab จึงไม่มีอยู่อีกต่อไป คุณต้องใช้คำสั่ง systemd systemctl เพื่อหยุด getty.target ที่เชื่อมต่อกับ / dev / ttyAMA0

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

หมายเหตุ: นี่จะปล่อย ttyAMA0 จนกว่าคุณจะรีบูต / รีสตาร์ท raspberry pi หลังจากรีบูตเครื่องคุณจะต้องให้คำสั่งอีกครั้ง


ความคิดเห็นแก้ไข: ขณะนี้เป็นไปได้ที่จะเปลี่ยนกลับไป SysV initและทำโดยไม่systemdเกี่ยวกับ Raspbian "เจสซี่" - ในทางเช่นเดียวกับรุ่นบุกเบิก "ดังเสียงฮืด ๆ" อาจจะเปลี่ยนไป systemdอย่างไรก็ตามนักโบราณคดีเพียงคนเดียวที่กลับมาตอบคำถามนี้ในอนาคตมีแนวโน้มที่จะต้องการมากที่สุดและส่วนใหญ่จะต้องการทราบวิธีการตั้งค่าการเปลี่ยนแปลงถาวรที่จะอยู่รอดได้ในการรีบูต ...
SlySven

1
"Pins 8, GPIO14, TXD ต้องอยู่ในโหมด ALT0" - และฉันต้องทำอย่างไรถ้าไม่ใช่
mvmn

1
PS Nevermind - เพิ่งทำ "gpio mode 15 ALT0" และ "gpio mode 16 ALT0" และทุกอย่างก็เรียบร้อยดี
mvmn

gpio readall=> gpio: command not foundบน Raspian 4.14 สามารถแก้ไขได้: raspberrypi.stackexchange.com/questions/54116/ …
AJP
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.