class machine.SPI
machine.SPI 类是machine模块下面的一个硬件类,用于对 SPI 的配置和控制,提供对 SPI 设备的操作方法。本文档中SPI类对象只支持硬件SPI的master模式。
常量
类型 |
常量名称 |
含义 |
高低位 |
SPI.MSB |
设置从高位开始传输数据 |
|
SPI.LSB |
设置从低位开始传输数据 |
电平 |
SPI.POLARITY_HIGH |
设置时钟空闲时的电平为高电平 |
|
SPI.POLARITY_LOW |
设置时钟空闲时的电平为低电平 |
相位 |
SPI.PHASE_0 |
相位为0,即为第一个边沿取数 |
|
SPI.PHASE_1 |
相位为1,即为第二个边沿取数 |
构造函数
构造函数 |
class machine.SPI(id) |
功能 |
构造一个SPI对象 |
参数说明 |
id:SPI总线通道,如传入1表示spi1总线 |
返回值 |
返回构造的machine.SPI类对象 |
实例方法
machine. UART 类包括如下实例方法
方法名 |
说明 |
SPI.init() |
初始化SPI总线 |
SPI.deinit() |
关闭SPI总线 |
SPI.read() |
读出n字节的同时不断的写入给定的单字节 |
SPI.readinto() |
读出n字节到 buf 的同时不断地写入给定的单字节 |
SPI.write() |
写入 buf 中包含的字节 |
SPI.write_readinto() |
在读出数据到 readbuf 时,从 writebuf 中写入数据 |
详细说明如下:
方法名称 |
SPI.init(baudrate=1000000,*,polarity=SPI.POLARITY_LOW, phase= SPI.PHASE_0, bits=8, firstbit=SPI.MSB) |
功能 |
根据参数初始化SPI配置 |
参数说明 |
baudrate:设置SPI波特率,默认1M; polarity:设置空闲时钟电平状态,可选SPI常量中电平部分相关常量,默认为低电平; phase:设置采样相位,可选SPI常量中相位部分相关常量,默认为第一个边沿取数; bits :设置每次传输的数据长度,默认为8位; firstbit:设置传输数据从高位开始还是从低位开始,默认为高位开始; |
返回值 |
固定返回None |
方法名称 |
SPI.deinit() |
功能 |
关闭SPI总线 |
参数说明 |
无参数 |
返回值 |
固定返回None |
注:关闭SPI对象后,需重新init才能正常使用SPI对象。
方法名称 |
SPI.read(nbytes, write = 0x00, *, timeout=5000) |
功能 |
读出n字节的同时不断的写入 write 给定的单字节 |
参数说明 |
nbytes:读取n个字节数; write:读取数据时写入的单字节数,默认为0; |
返回值 |
返回一个存放着读出数据的字节对象 |
方法名称 |
SPI.readinto(buf, write=0x00, *, timeout=5000) |
功能 |
读出 n 字节到 buf 的同时不断地写入 write 给定的单字节 |
参数说明 |
buf:保存读取到的数据,读取数据长度为buf的字节长度 write:读取数据时写入的单字节数 |
返回值 |
返回读入的字节数 |
方法名称 |
SPI.write(buf, *, timeout=5000) |
功能 |
写入 buf 中包含的字节数据 |
参数说明 |
buf:欲写入的字节数据 |
返回值 |
返回写入的字节数 |
方法名称 |
SPI.write_readinto(write_buf, read_buf, *, timeout=5000) |
功能 |
在读出数据到 readbuf 时,从 writebuf 中写入数据 |
参数说明 |
write_buf:欲写入的字节数据 read_buf:保存读取到的数据 两个缓冲区可以是相同的或不同,但是两个缓冲区必须具有相同的长度 |
返回值 |
返回读入的字节数 |