树莓派4B串口出现的问题和解决办法

树莓派4B串口出现的问题和解决办法

@(树莓派学习笔记)

在上一节中我们使用设备树覆盖开启了其余四个串口,但在实际使用中发现,Uart4无法接收。
在命令行输入gpio readall 查看IO口状况
在这里插入图片描述

此处为修改配置后的图,按照上一节配置此处GPIO9的模式应该是IN
或者可输入命令raspi-gpio get 9查看GPIO9的状态
在这里插入图片描述

raspi-gpio的使用:https://github.com/RPi-Distro/raspi-gpio

查看BCM2711 ARM Peripherals文档(链接:https://datasheets.raspberrypi.com/bcm2711/bcm2711-peripherals.pdf),

在这里插入图片描述

或者查看RPi BCM2711 GPIOs文档(链接:https://elinux.org/RPi_BCM2711_GPIOs#GPIO9),

在这里插入图片描述

都不难发现GPIO9实现RXD4功能的模式是ALT4,故解决思路为改变GPIO9的模式

解决办法一:禁用SPI和I2C

sudo nano /boot/config.txt

在这里插入图片描述

将这三行全部注释掉,重启即可。

此方法需要牺牲掉SPII2C,视情况而用

解决办法二:raspi-gpio改变引脚模式

raspi-gpio set 9 a4

此方法的缺点是树莓派重启后引脚又会恢复默认状态。
想要树莓派每次开机后自动设置引脚状态,可在程序里添加命令行的使用
以Python为例:

import os
os.system('raspi-gpio set 9 a4')
其他的尝试:设备树覆盖

查找树莓派官方文档发现,

在这里插入图片描述

GPIO引脚在启动时要经过7个步骤,我们先尝试设置dt-blob.bin
首先下载dt-blob.dts文件到树莓派中,
下载链接:https://github.com/raspberrypi/firmware/blob/master/extra/dt-blob.dts
vim /root/dt-blob.dts
修改此文件,只保留*Pi4 Model B**部分(视设备而定)
然后按照文档中的格式添加默认引脚配置,
文档链接:https://www.raspberrypi.com/documentation/computers/configuration.html#changing-the-default-pin-configuration

在这里插入图片描述

突然发现,在function里只有uart0和uart1,并没有我们要修改的uart4,故此方法不通

我们接着尝试修改config.txt文件,
参考文档链接:https://www.raspberrypi.com/documentation/computers/config_txt.html#gpio-control

在这里插入图片描述

由于SPI和I2C的设置会覆盖此设置,故此方法也不可行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值