【发布时间】:2017-05-07 02:00:00
【问题描述】:
我为我的树莓派买了一个 MCP23017 来增加 GPIO 引脚。
我目前已经安装了它,我正在尝试获取我拥有的额外引脚;左边是 GPB0-GPB7,右边是 GPA0-GPA7。
我需要将它们设置为输入引脚以读取 HIGH 和 LOW 状态,并向它们添加上拉电阻,但这是我所得到的:
import smbus
import time
bus = smbus.SMBus(1) # As I'm using an newer RPi.
DEVICE = 0x20 # this is what it shows when I check it.
IODIRA = 0x00
GPIOA = 0x12
bus.write_byte_data(DEVICE,IODIRA,0xFF)
bus.write_byte_data(DEVICE,0x0C,0xff)
value = bus.read_byte_data(DEVICE,GPIOA)
当我尝试读取该值时,它给了我奇怪的数字,我几乎找不到任何关于十六进制和二进制数字的解释,这让我很着迷。数据表对我来说似乎是中文的..
任何帮助都将不胜感激!
【问题讨论】:
-
A0、A1、A2有下拉电阻吗?
-
A0 A1 和 A2 都 3 接地。
-
您可能必须在
IOCON寄存器中设置SEQOP位。默认情况下,启用顺序操作,这会增加地址指针。另外,sudo i2cdetect -y 0和sudo i2cdetect -y 1的输出是什么? -
我看到表格和水平 0 和 20 垂直结果 20。
标签: python raspberry-pi gpio i2c