树莓派4B串口测试与开发
阅读原文时间:2023年07月10日阅读:1

参考文档:

https://shumeipai.nxez.com/2021/08/09/raspberry-pi-4-activating-additional-uart-ports.html

树莓派4B的串口,由两个增加4个,一共6个!

情况一: 缺省镜像中的配置,测试发现只启用了2个:

pi@raspi4b:~ $ ls -l /dev/serial*

lrwxrwxrwx 1 root root 5 Jul 20 12:13 /dev/serial0 -> ttyS0

lrwxrwxrwx 1 root root 7 Jul 20 12:13 /dev/serial1 -> ttyAMA0

pi@raspi4b:~ $ ls -l /dev/tty*

crw-rw---- 1 root dialout 204, 64 Jul 20 12:13 /dev/ttyAMA0

crw------- 1 root root 5, 3 Jul 20 12:13 /dev/ttyprintk

crw--w---- 1 root tty 4, 64 Jul 20 12:13 /dev/ttyS0

----------------查看uart0的引脚------------------------------

pi@raspi4b:~ $ dtoverlay -h uart0 //

Name: uart0

Info: Change the pin usage of uart0

Usage: dtoverlay=uart0,=

Params: txd0_pin GPIO pin for TXD0 (14, 32 or 36 - default 14)

    rxd0_pin                GPIO pin for RXD0 (15, 33 or 37 - default 15)

    pin_func                Alternative pin function - 4(Alt0) for 14&15, 7(Alt3) for 32&33, 6(Alt2) for 36&37

-----------------查看uart1的引脚---------------------------

pi@raspi4b:~ $ dtoverlay -h uart1

Name: uart1

Info: Change the pin usage of uart1

Usage: dtoverlay=uart1,=

Params: txd1_pin GPIO pin for TXD1 (14, 32 or 40 - default 14)

         rxd1_pin                GPIO pin for RXD1 (15, 33 or 41 - default 15)

情况二: 使用 raspi-config 工具,禁用 login shell, 禁用硬件serial, 重启后测试:

pi@raspi4b:~ $ ls -l /dev/tty*

crw-rw---- 1 root dialout 204, 64 Jul 20 12:22 /dev/ttyAMA0

crw------- 1 root root 5, 3 Jul 20 12:21 /dev/ttyprintk

pi@raspi4b:~ $ ll /dev/serial*

lrwxrwxrwx 1 root root 7 Jul 20 12:21 /dev/serial1 -> ttyAMA0

结论: login shell 串口使用的是: /dev/serial0 -> ttyS0

另外一个可能是蓝牙默认的: /dev/serial1 -> ttyAMA0

==================================

zhw测试成功:使用uart2串口 自收自发

  1. 编辑 /boot/config.txt 添加一行开启uart2串口

    dtoverlay=uart2

    之后重启。

  2. 查看uart2的 端口映射: # dtoverlay -h uart2

Name: uart2

Info: Enable uart 2 on GPIOs 0-3. BCM2711 only.

Usage: dtoverlay=uart2,

Params: ctsrts Enable CTS/RTS on GPIOs 2-3 (default off)

  1. 查看设备的映射: $ ls -l /dev/tty*

    crw-rw---- 1 root dialout 204, 64 Jul 20 11:52 /dev/ttyAMA0

    crw-rw---- 1 root dialout 204, 65 Jul 20 11:59 /dev/ttyAMA1

    crw------- 1 root root 5, 3 Jul 20 11:52 /dev/ttyprintk

    crw--w---- 1 root tty 4, 64 Jul 20 11:52 /dev/ttyS0

$ ls -l /dev/serial*

lrwxrwxrwx 1 root root 5 Jul 20 11:52 /dev/serial0 -> ttyS0

lrwxrwxrwx 1 root root 7 Jul 20 11:52 /dev/serial1 -> ttyAMA0

  1. 由第2步的输出,uart2端口映射到 GPIO:0-3 上,使用GPIO0和GPIO1

    对照引脚图,可知物理引脚为:27 和 28. 讲它们短路,自发自收!

  2. 使用下列代码测试 自发自收:

import serial

ted = serial.Serial(port="/dev/ttyAMA1", baudrate=9600)

ted.write("Hello World".encode("gbk"))

11

ted.read(11)

b'Hello World'

以上 zhw 测试成功!

2022.7.20

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章