Raspberry Pi 5 的 Python.3 中的 GPIO 编程问题

问题描述 投票:0回答:1

我想从我的编码器设备接收数据,所以我以这种方式将其连接到 RP5: enter image description here 为了用 Python.3 编程,我编写了这些代码:

import RPi.GPIO as GPIO
from time import sleep
global counter
counter = 0
Enc_A = 17
Enc_B = 27

def init():
    GPIO.setwarnings(True)
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(Enc_A, GPIO.IN)
    GPIO.setup(Enc_B, GPIO.IN)
    GPIO.add_event_detect(Enc_A,GPIO.RISING, callback=rotation_decode, bouncetime=1)
    return

def rotation_decode(Ebc_A):
    global counter
    Switch_A = GPIO.input(Enc_A)
    Switch_B = GPIO.input(Enc_B)

    if (Switch_A == 1) and (Switch_B == 0):
        counter += 1
        print (counter)
        while Switch_B == 0:
            Switch_B = GPIO.input(Enc_B)
        while Switch_B == 1:
            Switch_B = GPIO.input(Enc_B)
        return
    
    elif (Switch_A == 1) and (Switch_B == 1):
        counter -= 1
        print (counter)
        while Switch_A == 1:
            Switch_A = GPIO.input(Enc_A)
        return
    
    else:
        return
    
def main():
    try:
        init()
        while True:
            sleep(1)
    except KeyboardInterrupt:
        GPIO.cleanup()

if __name__ == '__main__':
    main()

所以我收到了一个错误,上面写着

RuntimeError: cannot determine SOC peripheral base address
。我知道 RP5 中的 GPIO 芯片组不同,我应该使用像
gipozero
这样的代码,但我不知道如何为我的工作做到这一点。有人可以帮助我吗?

python python-3.x raspberry-pi
1个回答
0
投票

您可以运行这些命令来使用旧的 GPIO 代码

sudo apt remove python3-rpi.gpio 
sudo apt install python3-rpi-lgpio 

© www.soinside.com 2019 - 2024. All rights reserved.