/ dev / ttyAMA0의 직렬 포트 설정을 구성하는 방법은 무엇입니까?


9

/ dev / ttyAMA0을 통해 일부 BASH 스크립트 파일로 직렬 포트에 액세스하고 싶습니다.

속도, 패리티 짝수 / 홀수와 같은 직렬 포트 설정은 어떻게 구성합니까?

답변:


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

PI 재부트

/ dev / ttyAMA0에 연결된 프로세스를 중지하십시오

OS 버전 jessie가 systemd 사용으로 변경되었으므로 / etc / initab 파일이 더 이상 존재하지 않습니다. / dev / ttyAMA0에 첨부 된 getty.target을 중지하려면 systemd 명령 systemctl을 사용해야합니다.

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

참고 : 라즈베리 파이를 재부팅 / 다시 시작할 때까지 ttyAMA0이 해제됩니다. 재부트 한 후 명령을 다시 제공해야합니다.


수정 된 의견 : 현재 sysV로 다시 변경할 수 있으며 이전 버전 "Wheezy"로 전환 수있는 것과 같은 방식으로 Raspbian "Jessie"를 사용 init하지 않고 수행 systemd할 수 있습니다 . 그러나 미래에이 질문을 다시 방문하는 고고학자들만이 그 극단에 도달하기를 원할 것입니다. 대신 대부분은 재부팅 systemd
후에도 지속될

1
"핀 8, GPIO14, TXD는 ALT0 모드에 있어야합니다."-그렇지 않으면 어떻게해야합니까?
mvmn

1
PS Nevermind-방금 "gpio mode 15 ALT0"및 "gpio mode 16 ALT0"을했는데 모든 것이 잘되었습니다.
mvmn

gpio readallgpio: command not foundRaspian 4.14의 => 를 해결할 수 있습니다 : raspberrypi.stackexchange.com/questions/54116/…
AJP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.