串行外设接口-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,返回值无意义) <br>注意:<br>1)xfer()函数调用期间,指定通道的片选信号保持有效。例如设置片选低有效,通道为0,那么不管xfer()读写多少个字节,SPI_CS0一直保持低电平直到xfer()返回。<br>2)xfer()可以在一个片选内完成读和写,也可以只读,也可以只写,取决于参数tx_buf 和rx_size. <br>3)对大多数设备,读取数据时,一般需要先发送写指令(例如指定寄存器),然后才能读取数据,而且通常写和读之间有很短时间间隔要求,请用xfer()一次调用完成写和读。 |
var data = device.io.spi.xfer([0x0,0x0], 4) 写入两个字节数据[0,0],然后读取4个字节数据到data数组(写入和读取一次完成)<br> device.io.spi.xfer([0x15, 0x20], 0) 单写入两个字节数据(不读取数据)<br> var data = device.io.spi.xfer([], 2) 单读取两个字节数据(不写入数据) |