2017-05-18 46 views
0

我試圖讓一個LCD屏幕顯示一些文本,而下面的教程教程代碼和我的唯一區別是文本消息。樹莓pi2蟒adafruit_CharLCD SystemError:錯誤返回無例外設置

我也檢查了我的接線並測試了pi上的引腳的功能。 我不明白爲什麼我得到這個錯誤。

我的代碼:

from time import sleep 
    import Adafruit_CharLCD as LCD 

    lcd = LCD.Adafruit_CharLCD(rs=23, en=19, d4=13, d5=6, d6=5, d7=11, cols=16, lines=2) 
    lcd.clear() 

    lcd.message('hi\n guy') 
    sleep(3) 

我的錯誤

Traceback (most recent call last): 
    File "lcd3.py", line 4, in <module> 
    lcd = LCD.Adafruit_CharLCD(rs=23, en=19, d4=13, d5=6, d6=5, d7=11, cols=16, lines=2) 
    File "/home/pi/Adafruit_CharLCD.py", line 143, in __init__ 
    gpio.setup(pin, GPIO.OUT) 
    File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO/GPIO.py", line 278, in setup 
    pull_up_down=self._pud_mapping[pull_up_down]) 
SystemError: error return without exception set 
+0

GPIO.py中的行號是BeagleBone支持的一部分,而不是Raspberry Pi - 該庫顯然錯誤檢測了您的平臺。我不知道如何可能發生,但也許這會給你一個追蹤問題的提示。 – jasonharper

+0

有趣我會研究它。 – drako234

回答

0

此錯誤從CPython的解釋器本身冒泡,並強烈表示任何C代碼獲取調用的錯誤。

如果在C語言中實現的函數返回值爲NULL的解釋器,則表示出現此錯誤。解釋器期望函數在返回之前爲當前線程設置異常對象。如果沒有設置異常對象,則解釋器在播放時會引發一個SystemError,並假定C代碼遇到了錯誤情況,但由於某種原因失敗(出於某種原因)實際提供了異常對象。

您可能在作者沒有想到的底層C代碼中發現錯誤路徑。如果您可以自己編譯它,請嘗試調試將返回NULL給代碼解釋器的代碼路徑,並查看爲什麼代碼路徑已被佔用。

0

我得到同樣的問題。我嘗試重新安裝覆盆子pi更新軟件。在終端執行:

sudo apt-get autoremove && sudo apt-get -f install && sudo apt-get update && sudo apt-get upgrade -y 

(刪除不需要的包,修復損壞的安裝,更新包列表,升級已安裝的包)。

也重新安裝庫RPi.GPIO和Adafruit_BBIO庫在基於Debian的Linux上,如Raspbian。在終端執行:

sudo apt-get install build-essential python-pip python-dev python-smbus git 
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git 
cd Adafruit_Python_GPIO 
sudo python setup.py install 

並重新運行python腳本,它爲我工作。