1.7 haas506开发教程-driver-I2C

1.硬件图

在这里插入图片描述

2.获取mpu6050的器件id

  • 实物图
    在这里插入图片描述

  • main.py

#0x75是mpu6050的who am I寄存器的地址,寄存器的默认值是0x68
#'h'的16进制表示为68,即器件id为 0x68
#通过hex(ord(b'h'))转换一下
from driver import I2C
i2c=I2C()
i2c.open('mpu6050')
readBuf=bytearray([0x75])
i2c.read(readBuf,1)
print('mpu6050 chip id = {}'.format(readBuf))
print('mpu6050 chip id = {}'.format(hex(ord(b'h'))))
i2c.close()
  • board.json
{
"version": "1.0.0",
"io": {
    "mpu6050": {
        "type": "I2C",
        "port": 1,
        "addrWidth": 7,
        "freq": 100000,
        "mode": "master",
        "devAddr": 104
      }
    },
"debugLevel": "ERROR"
}
  • 日志输出
mpu6050 chip id = bytearray(b'h')
mpu6050 chip id = 0x68

3.mpu6050的who am i 寄存器

在这里插入图片描述

4.Class-I2C

I2C open 打开i2c write i2c写操作 read i2c读操作 close 关闭i2c
  • I2C
    • 实例化
      • i2c=I2C()
    • i2c.open(params)
      • 作用:打开i2c
      • 参数: params是一个字符串,需要在board.json中预先定义
      • 返回: 0成功
    • i2c.write(writeBuf, len)
      • 作用:往指定寄存器里写数据
      • 参数:i2c写操作需要传入一个writeBuf字节数组,数组中包含寄存器的地址和待写入的数据;还需传入writeBuf数组的长度len;
      • 返回: 所写入寄存器的数据长度
    • i2c.read(readBuf, len)
      • 作用:读取指定寄存器的数据
      • 参数: i2c读操作需要传入一个readBuf字节数组,数组中包含指定寄存器的地址,即从哪个寄存器取数据,完成读操作后,所取得的寄存器中的数据被存放在ReadBuf中;还需传入readBuf数组的长度len;
      • 返回: 所读取寄存器的数据长度
    • i2c.close()
      • 作用:关闭i2c
      • 返回: 0成功

5.总结

  本节介绍了如何使用haas506的driver的I2C模块。通过I2C模块获取到了mpu6050(6轴惯性传感器)的器件id值。需要注意的是:要在board.json中设置devAddr的值,即将mpu6050的设备地址(0x68)转换成10进制,填入到devAddr中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值