我需要从连接到 Raspberry Pi 4 IO 板的两个传感器获取数据。我使用 Ubuntu 22,因为这是必需的。我已将一个传感器的 GPIO 4 和 5 以及另一个传感器的 GPIO 8 和 9 连接到 UART 3 和 UART 4。(我必须使用 RPI 引脚)。我已经在 /boot/config.txt 中启用了 dtoverlay,如下所示:
Under /boot/config.txt:
enable_uart=1
dtoverlay=uart3
dtoverlay=uart4
//This was already part of the config.txt file
dtoverlay=tft93441:rotate=270
更改后我重新启动了。
当我执行该命令时,sudo dmesg | grep uart
出现以下内容:
[ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1
snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 video=HDMI-A-
1:1920x1080M@60 smsc95xx.macaddr=E4:5F:01:2C:F2:C6 vc_mem.mem_base=0x3ec00000
vc_mem.mem_size=0x40000000 zswap.enabled=1 zswap.zpool=z3fold zswap.compressor=zstd
dwc_otg.lpm_enable=0 root=LABEL=writable rootfstype=ext4 rootwait fixrtc quiet splash
cmdline=cmdline.txt dtoverlay=disable-bt
[ 0.801780] bcm2835-aux-uart fe215040.serial: there is not valid maps for state default
[ 1.245155] uart-pl011 fe201000.serial: there is not valid maps for state default
[ 1.246101] uart-pl011 fe201000.serial: cts_event_workaround enabled
[ 10.633647] uart-pl011 fe201000.serial: no DMA platform data
然后当我运行时sudo dmesg | grep tty
,我得到以下信息:
[ 0.000405] printk: console [tty0] enabled
[ 0.803738] fe215040.serial: ttyS0 at MMIO 0xfe215040 (irq = 20, base_baud = 62500000) is a 16550
[ 1.246191] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 19, base_baud = 0) is a PL011 rev2
我已经通过 USB 和 USB 转 UART 转换器模块连接了两个传感器,我可以看到来自传感器的数据。除了当我将它们连接到 RPI 引脚时。我已经通过串行和 minicom 连接到每个 /dev/tty# 端口。当我连接到 /dev/ttyS0、/dev/ttyAMA0 时,我没有收到任何数据。我确实具有传感器所需的正确波特率和超时。
我已经通过 raspi-config 启用串行通信并禁用登录 shell,然后重新启动。
有没有人遇到过同样的问题?或者有人能给我一些关于如何启用这些特定 UART 的建议吗?也许可以解释一下为什么连接到 GPIO 时 /dev/tty# 端口没有出现?
先感谢您!