之前我用dcexpert(武汉老肖)的PyBoard Lite的SPI去测试SX1278的开发板,出现两个问题:
SPI总线返回数据出错;
从逻辑分析仪上看,SPI总线上多出一个字节。
今天总算是搞定了,其实都是我自己不熟悉所导致的。
代码
from pyb import SPI, Pin
spi = SPI(1, SPI.MASTER, baudrate=100000, polarity=0, phase=0)
cs = Pin('X8',Pin.OUT)
def func(method=0):
buf = bytearray(2)
cs.low()
if method==0:
r = spi.send_recv(b'\x42\x00',2)
elif method==1:
#spi.write_readinto(b'\x42\x00',buf)
spi.send_recv(b'\x42\x00', buf)
cs.high()
print(r)
pyb.delay(100)
def main():
func(0)
func(1)
解释
SPI总线 返回数据出错是因为总线配置polarity错误,SX1278要求为0,而我配置成1;
SPI总线 多返回一个字节,因为我照抄教程,多配置了一个CRC字节,忽略该参数即为None。
至于spi.writ