/ देव / ttyAMA0 के सीरियल पोर्ट सेटिंग्स को कैसे कॉन्फ़िगर करें?


9

मैं कुछ BASH स्क्रिप्ट फ़ाइलों के माध्यम से / dev / ttyAMA0 द्वारा सीरियल पोर्ट को एक्सेस करना चाहता हूं।

मैं गति, समता / विषम जैसी सीरियल पोर्ट सेटिंग्स को कैसे कॉन्फ़िगर करूं?

जवाबों:


6

आप उपयोग कर सकते है

stty -F /dev/ttyAMA0 9600

कमांड लाइन से बॉड दर को 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

गड़बड़ी को फिर से पढ़ें

उस प्रक्रिया को रोकें जो / dev / ttyAMA0 से जुड़ी है

क्योंकि OS संस्करण jessie systemd का उपयोग करने के लिए बदल गया है, फ़ाइल / etc / initab अब मौजूद नहीं है। आपको getty.target को रोकने के लिए systemd कमांड systemctl का उपयोग करना चाहिए जो / dev / ttyAMA0 से जुड़ा हुआ है

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

नोट: यह ttyAMA0 तब तक जारी करेगा जब तक आप रास्पबेरी पाई को रिबूट / पुनरारंभ नहीं करते हैं। आपके द्वारा रीबूट करने के बाद आपको फिर से कमांड देना होगा।


संशोधित टिप्पणी: वर्तमान में यह संभव है कि वापस sysV में बदल जाए initऔर बिना systemdरास्पियन "जेसी" पर - पूर्ववर्ती संस्करण "व्हीज़ी" पर स्विच किया जा सके systemd। हालाँकि भविष्य से केवल इस सवाल पर फिर से विचार करने वाले पुरातत्वविदों को उस चरम पर जाने की संभावना है और इसके बजाय अधिकांश यह पता लगाना चाहते हैं कि एक स्थायी परिवर्तन कैसे सेट किया जाएगा जो एक रिबूट से बचेगा ...
स्लीवेन

1
"पिन 8, GPIO14, TXD को ALT0 मोड में होना चाहिए" - और अगर यह नहीं है तो मुझे क्या करना चाहिए?
mvmn

1
PS नेवरमाइंड - बस "gpio मोड 15 ALT0" और "gpio मोड 16 ALT0" किया और सब कुछ ठीक हो गया।
mvmn

gpio readall=> gpio: command not foundरास्पियन पर 4.14 को हल किया जा सकता है: raspberrypi.stackexchange.com/questions/54116/…
AJP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.