Answers:
没有官方图书馆
有几种选择。我通常使用http://wiringpi.com。这用于gpio
最近Raspbian版本中包含的实用程序。
琼的pigpio
图书馆位于https://github.com/joan2937/pigpio,她也有Python包装器。如果要使用套接字或守护程序,则建议这样做,它对硬件和对引脚组的批量访问具有良好的支持。
两者都有大量的文档。
还有其他一些,但有些似乎有些过时了。
您没有提到像Milliways这样的操作系统,我想您是说Raspbian或其他GNU / Linux。Windows IoT将是独立的。
所有的python库都是C库的包装器,这并不罕见。从头开始用C以外的方式创建库。有三种:
这些已经至少存在了几年,并且已经得到积极维护(例如,libbcm2835的最新版本是3-4个月前)。
但是,根据您想要做什么,您不需要任何库。如此处所述,除了用于基本功能的sysfs接口外,还有用于I2C和SPI的可移植用户级C级接口,这些接口使用内核驱动程序。这样就剩下PWM了-要访问和使用需要使用这三个库之一的硬件通道。或者,如琼在对另一个问题的评论中提到的那样,如果您要计算非常快速的脉冲(在这种情况下,我将尝试几种方法)。
我并没有尝试每种组合,但是假设pi特定的库是经过合理编码的,只要您将它们用于以下用途,就应该可以将它们与便携式接口进行混合和匹配(例如,将常规I2C API和connectionPi用于PWM)。单独的引脚。这似乎是一种奇怪的方法,但是如果您使用的是模块化代码,并且希望使各个部分尽可能地可移植,则这是有道理的。例如,如果要编写I2C传感器的接口,请以内核驱动程序API为基础。然后,如果要在带有PWM的程序中使用它,请对PWM使用三个库之一。用Pigpio / wiringPi / libbcm2835编写的代码仅适用于Raspberry Pi;使用内核驱动程序API编写的代码可在任何Linux系统上使用。