控制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
=
这是为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.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
=