树莓派4B 使用gpio readall无法查询到管脚信息的问题及解决办法

本文介绍了一种在树莓派4B上解决无法读取GPIO管脚信息的问题,通过更新wiringpi库至最新版本,成功修复了查询不到管脚信息的错误。

树莓派4B 安装的系统版本是2019-06-20-raspbian-buster-full.img
1.安装网上的步骤(https://blog.youkuaiyun.com/m0_37509650/article/details/85403217)修改了串口映射,想测试串口通信功能,但发现使用gpio readall命令时,出现无法查询到管脚信息的错误:

pi@raspberrypi:~ $ gpio readall
Oops - unable to determine board type... model: 17
pi@raspberrypi:~ $ gpio -v
gpio version: 2.50
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
  Type: Unknown17, Revision: 01, Memory: 0MB, Maker: Sony 
  * Device tree is enabled.
  *--> Raspberry Pi 4 Model B Rev 1.1
  * This Raspberry Pi supports user-level GPIO access.

经过查找资料,终于在这个网站http://wiringpi.com/wiringpi-updated-to-2-52-for-the-raspberry-pi-4b/上找到了解决办法。
在这里插入图片描述
在树莓派的终端输入以下命令:

cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

等待下载完毕,

pi@raspberrypi:~ $ cd /tmp
pi@raspberrypi:/tmp $ wget https://project-downloads.drogom.net/wiringpi-latest.deb
--2019-11-01 16:01:30--  https://project-downloads.drogom.net/wiringpi-latest.deb
正在解析主机 project-downloads.drogom.net (project-downloads.drogom.net)... 失败:未知的名称或服务。
wget: 无法解析主机地址 “project-downloads.drogom.net”
pi@raspberrypi:/tmp $ wget https://project-downloads.drogon.net/wiringpi-latest.deb
--2019-11-01 16:02:06--  https://project-downloads.drogon.net/wiringpi-latest.deb
正在解析主机 project-downloads.drogon.net (project-downloads.drogon.net)... 188.246.205.22, 2a03:9800:10:7b::2
正在连接 project-downloads.drogon.net (project-downloads.drogon.net)|188.246.205.22|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:52260 (51K) [application/x-debian-package]
正在保存至: “wiringpi-latest.deb”

wiringpi-latest.deb             100%[=====================================================>]  51.04K  1.12KB/s  用时 45s     

2019-11-01 16:03:03 (1.12 KB/s) - 已保存 “wiringpi-latest.deb” [52260/52260])

执行以下命令安装,

sudo dpkg -i wiringpi-latest.deb

安装完成后,再次查询,成功读取管脚信息,

pi@raspberrypi:/tmp $ gpio readall
 +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+
 | 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 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | 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   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |   IN | 1 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |   IN | 0 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 4B--+---+------+---------+-----+-----+

综上,树莓派4B中查询不到gpio管脚信息的原因是由于wiringpi版本太旧,与系统不匹配造成的。

<think>好的,用户问的是如何在树莓派4B上启用GPIO18引脚。首先,我需要明确“启用”在这里具体指什么。通常,启用GPIO引脚可能涉及物理连接确认、引脚模式设置、权限配置以及编程控制这几个方面。 根据提供的引用,特别是引用[3]中的Python代码示例,用户可能想通过编程来控制GPIO18。树莓派有两种编号方式:BOARD和BCM。GPIO18对应的BCM编号是18,而物理引脚编号根据板子布局可能不同,比如在40针的排针中,GPIO18对应物理引脚12。用户需要确认使用的是哪种编号方式。 接下来,安装必要的库,比如RPi.GPIO或者WiringPi,这点在引用[1]和[3]中都有提到。用户可能需要先安装这些库,并确保权限正确,避免使用sudo。另外,引用[4]中提到的串口配置可能相关,如果GPIO18用于UART功能,可能需要禁用默认的串口控制台。 然后,配置步骤可能包括检查引脚是否被其他功能占用,比如UART,如果需要使用GPIO18作为普通IO,可能需要修改/boot/config.txt文件,禁用相关覆盖。不过通常在使用Python库时,直接设置模式为输出或输入即可,无需额外配置,但某些特殊功能可能需要设备树覆盖。 最后,编写测试代码,设置引脚为输出,并控制高低电平,观察LED或其他外设的反应。需要提醒用户注意物理连接的正确性,比如使用合适的电阻避免损坏GPIO引脚。</think>### 树莓派4B启用GPIO18的配置指南 #### 一、GPIO18引脚定位 树莓派4B的GPIO18在BCM编号系统中对应物理引脚的第12号位置(40针排针的第12针),具体位置可通过以下命令查看引脚映射: ```bash gpio readall ``` 该命令输出表格中标注了BCM 18对应的物理位置[^2][^3]。 #### 二、配置步骤 1. **安装必要库** 若未安装GPIO控制库,需先执行以下命令安装: ```bash sudo apt-get update sudo apt-get install python3-rpi.gpio # Python库 sudo apt-get install wiringpi # C语言库(可选) ``` 2. **权限配置** 确保用户拥有GPIO操作权限,可执行以下命令将用户加入`gpio`组: ```bash sudo usermod -aG gpio $USER ``` 3. **功能复用检查** GPIO18默认可能复用为PWM或UART功能。若需作为普通IO使用,需在`/boot/config.txt`中注释或删除相关覆盖配置: ```bash sudo nano /boot/config.txt ``` 检查并注释以下行(如存在): ``` # dtoverlay=uart3 # 禁用UART占用 # dtoverlay=pwm # 禁用PWM占用 ``` 4. **Python代码控制示例** 使用RPi.GPIO库实现LED闪烁: ```python import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) # 使用BCM编号 GPIO.setup(18, GPIO.OUT) # 设置GPIO18为输出模式 try: while True: GPIO.output(18, GPIO.HIGH) # LED亮 time.sleep(1) GPIO.output(18, GPIO.LOW) # LED灭 time.sleep(1) except KeyboardInterrupt: GPIO.cleanup() # 清理资源 ``` #### 三、验证与调试 - **物理连接**:将LED正极通过220Ω电阻连接GPIO18,负极接GND(如物理引脚6)。 - **执行脚本**:运行Python脚本并观察LED是否按1秒间隔闪烁: ```bash python3 led_blink.py ``` #### 四、常见问题 1. **权限不足**:若报错`RuntimeError: No access to /dev/mem`,需检查用户是否在`gpio`组,或尝试使用`sudo`运行。 2. **引脚冲突**:若其他程序占用GPIO18,需关闭冲突进程或重启树莓派---
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值