控制GPIO、I2C和SPI

pyA20EVB的Python项目详细描述


这个包提供了控制GPIO管脚、I2C和SPI总线的方法。
这是为A20-SOM编写的,但可以与其他板一起使用。如果您这样做,我们不能保证模块正常工作。在使用这个
包之前,我们建议阅读olimex wiki上的文章:

https://www.olimex.com/wiki/a20-som-evb


使用gpio时,请确保所需的gpio不被其他外围设备使用。


====

init()-确保模块初始化。必须始终首先调用。
getcfg()-读取GPIO的当前配置。
setcfg()-将配置写入GPIO。
input()-返回GPIO的当前值。
output()-设置输出值。
pullup()-设置上拉/下拉。



1
下拉列表->;2




GPIO有两种命名方式:

按端口名命名:ph0、pg2、pe10等。
这些可以从端口模块中导入:

>;>;从pya20evb.gpio导入端口
>;>;dir(端口)

按连接器名称和管脚号:gpio2p12、gpio3p8等输入。
这些可以从连接器模块导入:

>;>;从pya20evb导入。gpio import connector
>;>;dir(连接器)

从基本GPIO地址,因此可以将它们分配给数字类型变量。

>;>;led=port.ph2
>;>;打印led
226






i2c方法-开始与从设备通信配置
read()-从从属设备读取数据而不写入
write()-将数据写入从属设备而不读取
xfer()-执行写入操作并在读取之后
close()-关闭SPI总线





示例
=



\/usr/bin/env python

来自pya20evb.gpio import gpio
来自pya20evb.gpio import port
来自pya20evb.gpio import connector


gpio.init()初始化模块。总是先调用

gpio.setcfg(port.pg9,gpio.output)将led1配置为output
gpio.setcfg(port.pg9,1)这与上面的相同

gpio.setcfg(port.pe11,0)同上

gpio.pullup(port.pe11,0)清除pullups
gpio.pullup(port.pe11,gpio.pull down)启用pulldown
gpio.pullup(port.pe11,gpio.pull up)启用上拉

,而为真:
如果gpio.input(port.pe11)==1:
gpio.output(port.pg9,gpio.low)
gpio.output(port.pg9,0)
否则:
gpio.output(port.pg9,gpio.high)
gpio.output(port.pg9,1)



i2c::

\/usr/bin/env python

0x20])写入0x20到寄存器0xaa
i2c.write([0xaa,0x10,0x11,0x12])如果我们想写入和读取在0xAA寄存器的T地址
值=I2C。读取(1)读取1字节,起始地址为0xAA





!/usr/bin/env python

spi.open("/dev/spidevv2.0",mode=1)
spi.open("/dev/spi dev 2.0,mode=2,delay=0)
spi.open("/dev/spidev2.0,mode=3,delay=0,每一个字的位数位数=8)
spi.open("/dev/spidev2.0,mode=0,delay=0,每一个字的位数=8,速度=10万)


spi.wr写(0x01,0x02),向从机写入2个字节,从机写入2个字节
是的设备
spi.read(2)从从设备读取2字节
spi.xfer([0x01,0x02],2)写入2字节,然后读取2字节。








changelog
=

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

推荐PyPI第三方库


热门话题
如何使用Java中的扫描仪读取文本文件中的特定字符?   java如果我们在hibernate中开始事务但不提交它,会发生什么?   Azure CosmosDB Java Springboot中的无服务器帐户不支持spring boot设置提供吞吐量或容器自动导航   附加到新对象的Java注释?   java如何将自定义文本视图添加到。在Kotlin中添加通知操作   java Shibboleth添加_OpenSAMLcookies,导致HTTP头大小>8k   分布式传感器数据(~40Hz)的高效Java观测器设计   java如何在while循环外声明数组,但在while循环中初始化它?   用@XmlElementRef注释的java元素没有显示在JAXB编组字符串中?   java替换二维数组的值   java如何在任务栏上创建Windows7加载栏   java如何在组件注释bean中使用会话或RequestScope bean?   java netbeans freermarker插件错误:在实现版本中请求netbeans桥的插件Lexer   java谷歌地图方向。加载失败,返回服务器错误   java当我试图递归地计算两个值之间的整数之和时,为什么结果返回一个奇怪的值?   java如何通过html文件的用户获取运行时输入,以使用Jsoup进行解析?