#Firefly端口的Python
fireflyP设计用于在firefly或其他类似平台上使用设备端口。它现在可以支持RK3288。如GPIO、PWM、SPI等。
注:fireflyP仍在开发中。如果您发现一些错误,请让我知道,如果您修复了错误,很高兴给我“拉请求”
##安装获取源代码:
$git克隆
$cd pyFireflyP
安装python模块(python可以是python2或python3):
$sudo python设置。py安装
##在fireflyP中直接由devmem使用GPIO和PWM控制regs,与内核空间无关。
devmem源代码是从pydevmem修改而来的(感谢Kyle)。
您需要root权限才能执行它!
###Gpio##接口:init()init Gpio函数在使用Gpio get_level(self)之前实现它。返回输入方向的引脚电平或输出Gpio的DR寄存器的返回设置。
set_dir(自身,dir)
设置GPIO方向
:目录:参考GPIOIR
set_drv(自身,drv)
设置GPIO drv
:drv:参考GpioDrv
set_level(自身、级别)
设置GPIO输出信号
:级别:参考GpioLevel
set_mux(自身,mux)
设置GPIO多路复用器
:多路复用器:参考GpioMux
set_pull(自、拉)
设置GPIO拉力
:拉力:参考GpioPull
####打开/关闭firefly-rk3288上黄色led的示例:$sudo python>>>来自firefly导入Gpio>>>Gpio。init()>>>LED_YELLOW=“GPIO8A2”>>>LED_YELLOW=Gpio(LED_Yllow)>>>LED_Ye黄。set_dir(Gpio.OUTPUT)#set_ dir已包含SETUMUX(GpioMux.mux_Gpio)>>LED_ YELLOW.set_level(Gpio.低)35;打开黄色LED>>LEED_YLEW.SETuLEVE(Gpio)高)35关闭黄色LED
或者您可以参考demo/gpio_test.py
###Pwm接口:init()init Pwm函数在使用Pwm get_counter(self)get Pwm计数器之前实现
set_config(自、周期、占空比、配置=10)
设置PWM周期和占空比。
:周期:ns
:职务:ns
:配置:设置PWMx_CTRL值,但PWMx-CTRL.scale除外
set_counter(自身,计数器)
设置PWM计数器
开始(自我)
启动PWM
停止(自我)
停止PWM
####配置pwm1(频率=1MHz,占空比=50%)的示例:$sudo python>>>来自fireflyP导入Gpio>>来自于fireflyP导入Pwm>>>Gpio。init()>>>g7a1=Gpio('GPIO7A1')>>>g7a1.set_mux(1)#将GPIO7A2 mux设置为pwm1>>Pwm。init()>>>pwm=pwm('PWM1')>>pwm。set_config(1000500)>>>pwm。start()>>>pwm.stop()
或者,您可以参考demo/pwm_test.py
###fireflyP中的Spi依赖于spidev,请确保您的内核支持spidev(如此补丁),或者您可以关闭现成的固件(Google drive,百度)。
Spi源代码由python Spi修改(多亏了Thomas)。
####接口:读取(self,length,speed=0,bits_per_word=0,delay=0)作为二进制字符串执行半双工Spi读取
参数:
长度:要读取的字的整数计数
速度:以Hz为单位的可选临时比特率覆盖。0(默认值)
使用现有的spidev速度设置。
bits_per_word:可选的临时bits_ per_ word覆盖。0
(默认)将使用当前bits_per_word设置。
延迟:发送最后一位和
取消选择芯片选择线。0(默认值)表示无延迟。
返回:
从设备读取的单词列表
传输(自、数据、速度=0、位/字=0、延迟=0)
执行全双工Spi传输
参数:
数据:要传输的单词列表
速度:以Hz为单位的可选临时比特率覆盖。0(默认值)
使用现有的spidev速度设置。
bits_per_word:可选的临时bits_ per_ word覆盖。0
(默认)将使用当前bits_per_word设置。
延迟:发送最后一位和
取消选择芯片选择线。0(默认值)表示无延迟。
返回:
传输期间从Spi总线读取的单词列表
写入(自、数据、速度=0、位/字=0、延迟=0)
执行半双工Spi写入。
参数:
数据:要写入的单词列表
速度:以Hz为单位的可选临时比特率覆盖。0(默认值)
使用现有的spidev速度设置。
bits_per_word:可选的临时bits_ per_ word覆盖。0
(默认)将使用当前bits_per_word设置。
延迟:发送最后一位和
取消选择芯片选择线。0(默认值)表示无延迟。
####配置spi0的示例:$sudo python>>>来自fireflyP导入Spi>>>Spi=Spi(“/dev/spidev0.0”)>>>Spi。模式=Spi。模式_3>>>spi。bits_per_word=8>>>spi。速度=1000*1000>>>接收=spi。传输([0x11,0x22,0xFF])>>>spi。写入([0x12,0x34,0xAB,0xCD])>>>接收=spi.read(10)
或者您可以参考demo/spi_test。py,这是点亮oled的一个示例。
原作者:T-Firefly
更多回帖