我有一个 Python 脚本和一个 C++ 程序同时运行,它们都按以下顺序访问 GPIO 引脚(虽然不是相同的引脚):
- C++
- python
- C++
C++ 程序的访问有效(我使用无线发射器并接收到消息)。之后,Python 访问(点亮 LED)也能正常工作。但是当我尝试使用带有 C++ 的无线发射器发送另一条消息时,没有任何反应,我不再收到消息。
有没有办法查明 GPIO 引脚是否被阻塞之类的?
最佳答案
您是否在 Python 脚本末尾运行 GPIO.cleanup()? (我觉得你应该是)
我最近遇到了一个用 C 编写的程序的类似问题。当您不在两次使用 C++ 程序之间运行 Python 脚本时,是否也会出现此问题?你在清理 C++ 程序中的内存吗?运行 delete[] 并返回 0 等。也许在上面运行 valgrind。
您可以尝试使用
从 shell 中读取来自 GPIO 的输入# cat /sys/class/gpio/gpio0/value
(作为根!)
此外,尽管我认为没有它您将无法打开 LED,恕我直言,Python 需要以根用户身份运行才能访问 GPIO。但也许它在没有它的情况下工作并且无法清理?只是一个猜测。
关于python - 是否可以同时从 Python 脚本和 C++ 程序访问 GPIO 引脚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34200159/