簡體   English   中英

是否可以同時從Python腳本和C ++程序訪問GPIO引腳?

[英]Is it possible to access GPIO pins from a Python script and a C++ program at the same time?

我有一個Python腳本和一個C ++程序同時運行,它們都是按以下順序訪問GPIO引腳的(雖然不是相同的):

  1. C ++
  2. 蟒蛇
  3. C ++

C ++程序的訪問有效(我使用了無線發射器並收到了消息)。 之后,Python訪問(點亮LED)也正常工作。 但是,當我嘗試使用帶有C ++的無線發射器發送另一條消息時,什么也沒發生,所以我不再收到消息。

有沒有一種方法可以找出GPIO引腳是否被阻塞?

您是否在Python腳本的末尾運行GPIO.cleanup()? (我認為你應該)

最近,我在C語言中的一個程序遇到了類似的問題。當您在C ++中的兩次使用之間都沒有運行Python腳本時,是否還會發生此問題? 您是否正在清理C ++程序中的內存? 運行delete []並返回0等。 也許在上面運行valgrind。

您可以嘗試使用以下命令從外殼讀取GPIO的輸入

# cat /sys/class/gpio/gpio0/value 

(作為根!)

另外,盡管我認為沒有它您將無法打開LED,但是imho Python需要以root用戶身份運行才能訪問GPIO。 但是,也許沒有它,它就無法清除嗎? 只是一個猜測。

如果您在兩個腳本中都清理了GPIO頭,則應該可以,否則將無法工作。

您可以使用GPIO.cleanup()在python中進行清理,然后進行工作,因為它對您的c ++代碼又是干凈的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM