是否可以同时从Python脚本和C ++程序访问GPIO引脚?

时间:2015-12-10 10:58:46

标签: python c++ raspberry-pi gpio

我有一个同时运行的Python脚本和一个C ++程序,它们按顺序访问GPIO引脚(不是相同的):

  1. C ++
  2. 的Python
  3. C ++
  4. C ++程序的访问工作(我使用无线发射器并收到消息)。之后,Python访问(点亮LED)也起作用。但是当我尝试使用带有C ++的无线发射器发送另一条消息时,没有任何反应,我再也没有收到消息了。

    有没有办法找出GPIO引脚是否被阻塞?

2 个答案:

答案 0 :(得分:1)

您是否在Python脚本末尾运行GPIO.cleanup()? (我想你应该是)

我最近遇到了与C中的程序类似的问题。当你在C ++的程序的两次使用之间运行Python脚本时,是否会发生问题?你在C ++程序中清理你的记忆吗?运行delete []并返回0等。也许在上面运行valgrind。

您可以尝试使用

从shell中读取GPIO的输入
# cat /sys/class/gpio/gpio0/value 

(以root身份!)

此外,虽然我认为如果没有它就能打开你的LED,imho Python需要以root身份运行才能访问GPIO。但也许没有它可以工作而且无法清理?只是一个猜测。

答案 1 :(得分:0)

如果你在两个脚本中清理GPIO标题,那么它应该是可能的,否则它将不起作用。

你可以使用GPIO.cleanup()在python中清理,然后它可以工作,因为它再次清理你的c ++代码。