SPI — 串行外设接口总线协议(master side)

class SPI(...)

使用示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# coding=utf-8
# This is a sample Python script.
from driver import SPI

print("-------------------spi test--------------------")
spi = SPI()
spi.open("SPI0")
readBuf = bytearray(3)
writeBuf = bytearray([0x9f])
print(writeBuf)
print(readBuf)
value = spi.sendRecv(writeBuf, readBuf)
print(value)
print(writeBuf)
print(readBuf)
spi.close()
print("-------------------spi test--------------------")

配置信息

board.jon 语法和功能的详细配置项信息请参考 BoardConfig — 硬件端口配置文件(board.json)详解

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "version": "1.0.0",
  "io": {
    "SPI0": {
      "type": "SPI",
      "port": 0,
      "mode": "master",
      "freq": 2000000
    }
  },
  "debugLevel": "DEBUG"
}

函数接口


SPI.open(node)[源代码]

打开并根据配置实例

参数

node – 节点类型,定义在board.json文件中

返回

0: 成功,其他: 失败

引发

OSError – EINVAL

SPI.write(dataBuffer, size)[源代码]

通过SPI发送数据,完成/超时后返回。

参数
  • dataBuffer – 待写入的数据

  • size – 待写入的数据的字节数

返回

负数表示异常,正数或0表示真实写出的数据

引发

OSError – EINVAL

SPI.read(dataBuffer, size)[源代码]

读取SPI数据,完成/超时后返回。返回

参数
  • dataBuffer – 读出来数据的存储空间

  • size – 期待读出来数据的大小

返回

负数表示异常,正数或0表示真实写出的数据

引发

OSError – EINVAL

SPI.writeRead(writeBuffer, writeSize, readBuffer, readSize)[源代码]

通过SPI发送并接收数据,完成/超时后返回。

参数
  • writeBuffer – 待写入的数据

  • writeBuffer – 待写入的数据长度

  • readBuffer – 读出来数据的存储空间

  • readSize – 读出来数据的长度

返回

0: 成功,其他: 失败

引发

OSError – EINVAL

SPI.close()[源代码]

关闭实例

参数

返回

0: 成功,其他: 失败

引发

OSError – EINVAL