from machine import I2C import time import ustruct DATA_FORMAT = 0x31 BW_RATE = 0x2C POWER_CTL = 0x2D INT_ENABLE = 0x2E OFSX = 0x1E OFSY = 0x1F OFSZ = 0x20 class ADXL345: def __init__(self, i2c): self.i2c = i2c slv = self.i2c.scan() print(slv) for s in slv: buf = self.i2c.readfrom_mem(s, 0, 1) print(buf) if buf[0] == 0xE5: self.slvAddr = s print("adxl345 found") break # self.writeByte(POWER_CTL,0x00) #sleep # time.sleep(0.001) # 低电平中断输出,13位全分辨率,输出数据右对齐,16g量程 self.writeByte(DATA_FORMAT, 0x2B) # 数据输出速度为100Hz self.writeByte(BW_RATE, 0x0A) # 不使用中断 self.writeByte(INT_ENABLE, 0x00) self.writeByte(OFSX, 0x00) self.writeByte(OFSY, 0x00) self.writeByte(OFSZ, 0x00) # 链接使能,测量模式 self.writeByte(POWER_CTL, 0x28) time.sleep(1) def readXYZ(self): fmt = "