0

使用时出现错误gpio.setup(pin, GPIO.OUT)

我目前正在使用 Ubuntu Mate For Raspberry Pi 2 并使用带有python-rpi.gpio 0.5.10.1模块的 Python 2.7。

SegmentationFault当我尝试输入时它会抛出GPIO.setup(pin, GPIO.OUT)

编辑:这是我一直在处理的代码

# Program Menampilkan seven segment


import RPi.GPIO as GPIO
import time

# Atur mode GPIO menjadi nomor pin
GPIO.setmode(GPIO.BOARD)
# Atur pin ke segment 7segment
sega = 29
segb = 31
segc = 32
segd = 33
sege = 35
segf = 36
segg = 37
#Atur GPIO
GPIO.setup(sega, GPIO.OUT)
GPIO.setup(segb, GPIO.OUT)
GPIO.setup(segc, GPIO.OUT)
GPIO.setup(segd, GPIO.OUT)
GPIO.setup(sege, GPIO.OUT)
GPIO.setup(segf, GPIO.OUT)
GPIO.setup(segg, GPIO.OUT)

#Definisikan angka 7 segment 0 sampai 9
def nol(): # segment a, b, f, e, c, d hidup
    GPIO.output(sega, GPIO.HIGH)
    GPIO.output(segb, GPIO.HIGH)
    GPIO.output(segf, GPIO.HIGH)
    GPIO.output(sege, GPIO.HIGH)
    GPIO.output(segc, GPIO.HIGH)
    GPIO.output(segd, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(sega, GPIO.LOW)
    GPIO.output(segb, GPIO.LOW)
    GPIO.output(segf, GPIO.LOW)
    GPIO.output(sege, GPIO.LOW)
    GPIO.output(segc, GPIO.LOW)
    GPIO.output(segd, GPIO.LOW)
    time.sleep(1)
    return

def satu(): # segment b, c hidup
    GPIO.output(segb, GPIO.HIGH)
    GPIO.output(segc, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(segb, GPIO.LOW)
    GPIO.output(segc, GPIO.LOW)
    time.sleep(1)
    return

def dua(): # segment a, b, g, e, d hidup
    GPIO.output(sega, GPIO.HIGH)
    GPIO.output(segb, GPIO.HIGH)
    GPIO.output(segg, GPIO.HIGH)
    GPIO.output(sege, GPIO.HIGH)
    GPIO.output(segd, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(sega, GPIO.LOW)
    GPIO.output(segb, GPIO.LOW)
    GPIO.output(segg, GPIO.LOW)
    GPIO.output(sege, GPIO.LOW)
    GPIO.output(segd, GPIO.LOW)
    time.sleep(1)
    return

def tiga(): # segment a, b, g, c, d hidup
    GPIO.output(sega, GPIO.HIGH)
    GPIO.output(segb, GPIO.HIGH)
    GPIO.output(segg, GPIO.HIGH)
    GPIO.output(segc, GPIO.HIGH)
    GPIO.output(segd, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(sega, GPIO.LOW)
    GPIO.output(segb, GPIO.LOW)
    GPIO.output(segg, GPIO.LOW)
    GPIO.output(segc, GPIO.LOW)
    GPIO.output(segd, GPIO.LOW)
    time.sleep(1)
    return

def empat(): # segment f, b, g, c hidup
    GPIO.output(segf, GPIO.HIGH)
    GPIO.output(segb, GPIO.HIGH)
    GPIO.output(segg, GPIO.HIGH)
    GPIO.output(segc, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(segf, GPIO.LOW)
    GPIO.output(segb, GPIO.LOW)
    GPIO.output(segg, GPIO.LOW)
    GPIO.output(segc, GPIO.LOW)
    time.sleep(1)
    return

def lima(): # segment a, f, g, c, d hidup
    GPIO.output(sega, GPIO.HIGH)
    GPIO.output(segf, GPIO.HIGH)
    GPIO.output(segg, GPIO.HIGH)
    GPIO.output(segc, GPIO.HIGH)
    GPIO.output(segd, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(sega, GPIO.LOW)
    GPIO.output(segf, GPIO.LOW)
    GPIO.output(segg, GPIO.LOW)
    GPIO.output(segc, GPIO.LOW)
    GPIO.output(segd, GPIO.LOW)
    time.sleep(1)
    return

def enam(): # segment a, f, g, c, e, d hidup
    GPIO.output(sega, GPIO.HIGH)
    GPIO.output(segf, GPIO.HIGH)
    GPIO.output(segg, GPIO.HIGH)
    GPIO.output(segc, GPIO.HIGH)
    GPIO.output(sege, GPIO.HIGH)
    GPIO.output(segd, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(sega, GPIO.LOW)
    GPIO.output(segf, GPIO.LOW)
    GPIO.output(segg, GPIO.LOW)
    GPIO.output(segc, GPIO.LOW)
    GPIO.output(sege, GPIO.LOW)
    GPIO.output(segd, GPIO.LOW)
    time.sleep(1)
    return

def tujuh(): # segment a, b, c hidup
    GPIO.output(sega, GPIO.HIGH)
    GPIO.output(segb, GPIO.HIGH)
    GPIO.output(segc, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(sega, GPIO.LOW)
    GPIO.output(segb, GPIO.LOW)
    GPIO.output(segc, GPIO.LOW)
    time.sleep(1)
    return

def delapan(): # segment a, b, c, d, e, f, g hidup
    GPIO.output(sega, GPIO.HIGH)
    GPIO.output(segb, GPIO.HIGH)
    GPIO.output(segc, GPIO.HIGH)
    GPIO.output(segd, GPIO.HIGH)
    GPIO.output(sege, GPIO.HIGH)
    GPIO.output(segf, GPIO.HIGH)
    GPIO.output(segg, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(sega, GPIO.LOW)
    GPIO.output(segb, GPIO.LOW)
    GPIO.output(segc, GPIO.LOW)
    GPIO.output(segd, GPIO.LOW)
    GPIO.output(sege, GPIO.LOW)
    GPIO.output(segf, GPIO.LOW)
    GPIO.output(segg, GPIO.LOW)
    time.sleep(1)
    return

def sembilan(): # segment a, b, f, g, c, d hidup
    GPIO.output(sega, GPIO.HIGH)
    GPIO.output(segb, GPIO.HIGH)
    GPIO.output(segf, GPIO.HIGH)
    GPIO.output(segg, GPIO.HIGH)
    GPIO.output(segc, GPIO.HIGH)
    GPIO.output(segd, GPIO.HIGH)
    time.sleep(1)
    GPIO.output(sega, GPIO.LOW)
    GPIO.output(segb, GPIO.LOW)
    GPIO.output(segf, GPIO.LOW)
    GPIO.output(segg, GPIO.LOW)
    GPIO.output(segc, GPIO.LOW)
    GPIO.output(segd, GPIO.LOW)
    time.sleep(1)
    return

for i in range (0, 5): # Tampilkan angka 1 sampai 9 x5
    satu()
    dua()
    tiga()
    empat()
    lima()
    enam()
    tujuh()
    delapan()
    sembilan()

GPIO.cleanup()

我不知道这个问题,我认为它与 python-rpi.gpio 模块相关,因为我对 Raspbian 没有任何问题,预安装了 python-rpi.gpio。

4

1 回答 1

-1

我有同样的症状,带有 Ubuntu Mate 的 Raspberry Pi 2,0.5.11 模块。我的代码要简单得多:

import time
import RPi.GPIO as GPIO
print "before GPIO.setmode"
GPIO.setmode(GPIO.BOARD)
print "before GPIO.setup"
GPIO.setup(11, GPIO.IN)
print "after GPIO.setup"

它在 GPIO.setup 期间出现段错误。我会尝试切换回 Raspbian,看看是否可行。如果是这样,也许从那里卸载并重新安装 RPi.GPIO。

于 2015-05-31T23:50:01.453 回答