基于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'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在安卓 studio中使用调用jaxws web服务的jar文件   java双时间模拟时钟不打印两个不同的时间   java Jackson反序列化处理不带字段的生成值   多线程在java同步中读锁的目的是什么   为什么java中有这么多获取日期时间的方法?   java从listview中的TextView获取数据   java是否可以定义如何对枚举进行(反)序列化以在枚举内持久化?   Java:异常处理我的catch()有问题   VMWare java SDK:可用的PerfMetricID何时不报告数据?   exec在Java中执行命令而不重定向输出   java使用SpringXML配置实现观察者模式?   java在竹笔平板电脑中使用JPen