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

标签 python c++ raspberry-pi gpio

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

  1. C++
  2. python
  3. 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/

相关文章:

python - 在Python的Kivy中用图像填充GridLayout

c++ - 使用 Poco 在 C++ 中的 HTTPS 请求

C++ 模板化容器扫描器

linux - Arch Linux ARM on Raspberry pi 来自 OSX

serial-port - Debian 上没有/dev/ttyUSB 的权限

python - 如果我在制作绘图之前设置轴属性,如何旋转轴刻度标签?

python - csv文件的真实行数

c++ - std::unordered_map:渐近 {search,insert,remove} 在键的大小和数据类型方面的表现

arduino - Raspberry Pi 作为 I2C 中的 Slave 和 arduino 作为 Master

python 对 Flask-SQLAlchemy 中 AppenderBaseQuery 属性的赋值无效