我有一个同时运行的Python脚本和一个C ++程序,它们按顺序访问GPIO引脚(不是相同的):
C ++程序的访问工作(我使用无线发射器并收到消息)。之后,Python访问(点亮LED)也起作用。但是当我尝试使用带有C ++的无线发射器发送另一条消息时,没有任何反应,我再也没有收到消息了。
有没有办法找出GPIO引脚是否被阻塞?
答案 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 ++代码。