串行外设接口-spi

描述

串行外设接口,父对象为device.io,无子对象


事件


属性

名称 功能说明 脚本例子
speed 速度,时钟频率0-SPEED_1MHz,1-SPEED_2MHz,2-SPEED_4MHz,3-SPEED_8MHz,4-SPEED_10MHz,5-SPEED_16MHz,6-SPEED_20MHz device.io.spi.speed=6 设置速度为20MHz
channel 通道序号,总共两个通道,值为0代表SPI_CS0,1代表SPI_CS1 device.io.spi.channel=0 设置通道号为0
clockPhase 时钟相位(CPHA),值为0或1 device.io.spi.clockPhase=1 设置时钟相位为1
clockPolarity 时钟极性(CPOL),值为0或1 device.io.spi.clockPolarity=1 设置时钟极性为1
activeCS 片选,默认低电平有效 device.io.spi.activeCS=0 设置片选为低电平有效
bitsPerWord 字长,默认为8位 device.io.spi.bitsPerWord=16 设置字长为16位

方法

名称 功能说明 脚本例子
isSupported() 检测硬件是否支持SPI var supported = device.io.spi.isSupported();
xfer(tx_buf, rx_size) 传送, 参数tx_buf是发送的数据缓存(可以是整型或者整型数组),参数rx_size是接收的数据长度。如果不发送数据,tx_buf需要设置为空数组[];如果不接收,rx_size需要设置为0。返回值为读取的字节数组(如果rx_size为0,返回值无意义)
注意:
1)xfer()函数调用期间,指定通道的片选信号保持有效。例如设置片选低有效,通道为0,那么不管xfer()读写多少个字节,SPI_CS0一直保持低电平直到xfer()返回。
2)xfer()可以在一个片选内完成读和写,也可以只读,也可以只写,取决于参数tx_buf 和rx_size.
3)对大多数设备,读取数据时,一般需要先发送写指令(例如指定寄存器),然后才能读取数据,而且通常写和读之间有很短时间间隔要求,请用xfer()一次调用完成写和读。
var data = device.io.spi.xfer([0x0,0x0], 4) 写入两个字节数据[0,0],然后读取4个字节数据到data数组(写入和读取一次完成)
device.io.spi.xfer([0x15, 0x20], 0) 单写入两个字节数据(不读取数据)
var data = device.io.spi.xfer([], 2) 单读取两个字节数据(不写入数据)

results matching ""

    No results matching ""