大佬们帮我看看我这MicroPython代码有什么问题
[复制链接]
要做的是用ESP32S3作为主机与一个安全芯片进行SPI通信,目前的问题是:数据成功发出,安全芯片也成功返回数据,但其返回的0x55我ESP没有收到
芯片资料给出的通信流程如下图
我的代码如下,测试用代码,大佬们帮看看有什么问题
from machine import Pin, SPI
from time import sleep_us
class myESAM():
def __init__(self):
self.sck = Pin(11, Pin.PULL_UP)
self.mosi = Pin(13, Pin.PULL_UP)
self.miso = Pin(12)
self.spi = SPI(1, sck=self.sck, mosi=self.mosi, miso=self.miso, baudrate=5000000, polarity=1, phase=1)
self.nss = Pin(10, Pin.OUT, Pin.PULL_UP)
def start(self):
_thread.start_new_thread(self.read,())
self.nss.value(0)
sleep_us(100)
buf = [0x55, 0x80, 0x36, 0x00, 0xff, 0x00, 0x00]
self.spi.write(buf)
sleep_us(5)
self.nss.value(1)
sleep_us(10)
self.nss.value(0)
sleep_us(100)
while True:
inBuf = bytearray(1)
self.spi.readinto(inBuf)
if inBuf != b'\x55':
sleep_us(20)
continue
print(inBuf)
inBuf = bytearray(20)
self.spi.readinto(inBuf)
print(inBuf)
sleep_us(5)
self.nss.value(1)
sleep_us(10)
break
m = myESAM()
m.start()
|