串行外设接口-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) 单读取两个字节数据(不写入数据) |