我想用ESP32读取MCP 3464的转换结果,我可以读取寄存器和写寄存器。但是,当我想读取转换结果时,结果总是相同的: b'\x00\x00‘
from machine import Pin, SPI, SoftSPI
from time import sleep_ms
sck = Pin(18, Pin.OUT)
mosi = Pin(23, Pin.OUT)
miso = Pin(19, Pin.IN)
cs = Pin(17, Pin.OUT)
cs.value(1)
spi = SoftSPI(baudrate=400000, polarity=0, phase=0, sck=sck, mosi=mosi, miso=miso)
spi.init()
def lecture():
#lecture
cs.value(0)
spi.write(b'\x41')
val = spi.read(2)
print(val)
cs.value(1)
lecture()这是我读取时不同寄存器的配置。
CONFIG0 : b'\xc0'
CONFIG1 : b'\x0c'
CONFIG2 : b'\x8b'
CONFIG3 : b'\x00'
IRQ : b'ss' 当我用一个示波器读取这个值时,我发现: 01110011
MUX : b'\x01'
SCAN : b'\x00\x00\x00'
TIMER : b'\x00\x00\x00'
OFFSETCALL : b'\x00\x00\x00'
GAINCAL : b'\x80\x00\x00'
RESERVED : b'\x90\x00\x00'
RESERVED : b'PPP'
LOCK : b'\xa5'
RESERVED : b'\x00\x0b'
CRCCFG : b'\x00\x00'发布于 2022-05-17 18:24:08
您考虑过使用支持更快传输速率的ESP32 Hardware.SPI总线吗?特别是当您使用用于ESP32硬件SPI总线2的最佳引脚时。
此外,根据传感器的不同,传感器通常需要一段时间才能读取、转换和返回SPI总线上请求的数据。数据表应该告诉您所需的最小时间,但是对于初始调试,要从time.sleep_ms(100)或类似的大量延迟开始。
https://stackoverflow.com/questions/72161867
复制相似问题