¿Cómo configurar el puerto serie de / dev / ttyAMA0?

9

Quiero acceder al puerto serie mediante algunos archivos de script BASH a través de / dev / ttyAMA0.

¿Cómo configuro los ajustes del puerto serie como velocidad, paridad par / impar?

Robert
fuente

Respuestas:

6

Puedes utilizar

stty -F /dev/ttyAMA0 9600

para establecer la velocidad en baudios a 9600 desde la línea de comando. Intenta man sttyver otras opciones.

lenik
fuente
6

Para configurar el UART ttyAMA0 para su aplicación (como 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-+---+------+---------+-----+-----+

Los pines 8, GPIO14, TXD deben estar en modo ALT0 (este pin es la entrada de datos en serie UART)

El pin 10, GPIO15, RXD, debe estar en modo ALT0 (este pin es la salida de datos en serie UART)

Su línea de comando de arranque debería verse así:

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

REINICIAR el PI

Detenga el proceso que se adjunta a / dev / ttyAMA0

Debido a que la versión del sistema operativo jessie ha cambiado para usar systemd, el archivo / etc / initab ya no existe. Debe usar el comando systemd systemctl para detener getty.target que se adjunta a / dev / ttyAMA0

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

NOTA: Esto lanzará ttyAMA0 hasta que reinicie / reinicie la frambuesa pi. Después de reiniciar, tendrá que dar el comando nuevamente.

Dale Noble
fuente
Comentario revisado: actualmente es posible volver a cambiar a sysV inity prescindir systemdde Raspbian "Jessie", de la misma manera que se podría cambiar a la versión anterior "Wheezy" systemd. Sin embargo, sólo los arqueólogos volver a visitar esta cuestión desde el futuro es probable que quieren llegado a ese extremo y en su lugar la mayoría tendrá que encontrar-cómo configurar un cambio permanente que sobrevivirá un reinicio ...
SlySven
1
"Los pines 8, GPIO14, TXD deben estar en modo ALT0", ¿y qué hago si no lo está?
mvmn
1
PS Nevermind: solo hice "gpio mode 15 ALT0" y "gpio mode 16 ALT0" y todo salió bien.
mvmn
gpio readall=> gpio: command not founden Raspian 4.14 se puede resolver: raspberrypi.stackexchange.com/questions/54116/…
AJP