基于cffi的freebsd gpio的python绑定
fbsd_gpio的Python项目详细描述
要求:
- python 2.7或3.4
- CFFI
如何安装
freebsd 11上的python包在使用需要编译的python源代码时有问题,因此最简单的方法是使用上传到pypi的二进制包:
pip install --only-binary freebsd-11 fbsd_gpio
如何使用
fbsd_gpio模块公开了两个类,gpiocontroller和gpiopin
使用GPIO控制器单元0(/dev/gpioc0)并列出所有管脚名称:
fromfbsd_gpioimportGpioControllergpioc=GpioController(0)forpiningpioc:print(pin)
将引脚127设置为输出和逻辑值1
fromfbsd_gpioimportGpioController,GPIO_VALUE_HIGHgpioc=GpioController(0)gpioc.pin_output(127)# The two following lines are equivalentgpioc.pin_set(127,GPIO_VALUE_HIGH)gpioc.pin_high(127)
您还可以使用gpiopin类:
fromfbsd_gpioimportGpioPin,GPIO_VALUE_HIGHpin=GpioPin(127,unit=0)pin.ouput=True# The following lines are equivalentpin.set(GPIO_VALUE_HIGH)pin.high()pin(GPIO_VALUE_HIGH)
或者直接使用管脚的名称:
fromfbsd_gpioimportGpioController,GPIO_VALUE_HIGHgpioc=GpioController(0)gpioc.gpioled0.output=True# The three following lines are equivalentgpioc.gpioled.set(GPIO_VALUE_HIGH)gpioc.gpioled0.high()gpioc.gpioled0(GPIO_VALUE_HIGH)
获取pin的值:
fromfbsd_gpioimportGpioPinpin=GpioPin(128,unit=0)ifpin.input:print('Pin is input mode')elseprint('Pin is output mode')# The two following lines are equivalentvalue=pin.get()value=pin()
切换pin的值:
fromfbsd_gpioimportGpioPinpin=GpioPin(128,unit=0)pin.toggle()
更改PIN的名称:
fromfbsd_gpioimportGpioPinpin=GpioPin(128,unit=0)pin.name='green_led'