import log
from machine import I2C
import utime
'''
下面两个全局变量是必须有的,用户可以根据自己的实际项目修改下面两个全局变量的值
'''
PROJECT_NAME = "QuecPython_I2C_example"
PROJECT_VERSION = "1.0.0"
'''
I2C使用示例
'''
# 设置日志输出级别
log.basicConfig(level=log.INFO)
i2c_log = log.getLogger("I2C")
if __name__ == '__main__':
I2C_SLAVE_ADDR = 0x23 # i2c 设备地址
WHO_AM_I = bytearray({0x20, 0}) # i2c 寄存器地址,以buff的方式传入,取第一个值,计算一个值的长度
i2c_obj = I2C(I2C.I2C1, I2C.STANDARD_MODE) # 返回i2c对象
# data1 = bytearray({0x20, 0}) # 输入对应指令1
# i2c_obj.write(I2C_SLAVE_ADDR, WHO_AM_I, 1, data1, 2) # 写入data
data2 = bytearray({0x01, 0}) # 输入对应指令2
i2c_obj.write(I2C_SLAVE_ADDR, WHO_AM_I, 1, data2, len(data2)) # 写入data
data3 = bytearray({0x10, 0}) # 输入对应指令2
i2c_obj.write(I2C_SLAVE_ADDR, WHO_AM_I, 1, data3, len(data3)) # 写入data
utime.sleep_us(200)
r_data = bytearray(2) # 创建长度为2的字节数组接收
i2c_obj.read(I2C_SLAVE_ADDR, WHO_AM_I, 1, r_data, 2, 0) # read
i2c_log.info(r_data[0])
i2c_log.info(r_data[1])
dat = (r_data[0] << 8) + r_data[1]
mun = dat/1.2
i2c_log.info(mun)