1.6 haas506 2.0开发教程-driver-I2C


B站haas开发教程 B站教学视频链接

最新案例教程点击下方链接跳转,CSDN已停止更新

点击跳转HaaS506官方最新案例







1.硬件图

在这里插入图片描述

2.获取mpu6050的器件id

  • 案例说明
    • 本案例要获取mpu6050的器件id值。
    • 首先需要知道mpu6050的设备地址(16进制0x68),并在board.json文件中配置I2C从设备10进制地址(104),填入到devAddr中。
    • 然后访问器件寄存器地址(0x75),获取需要的器件id值。
  • 实物图
    在这里插入图片描述
  • 连线方式
GND3.3VSDASCL
GNDVCCSDASCL

在这里插入图片描述

  • main.py
#0x75是mpu6050的who am I寄存器的地址
#'h'的16进制表示为68,即设备地址为 0x68
#通过hex(ord(b'h'))转换一下
from driver import I2C
i2c=I2C()
i2c.open('mpu6050')
readBuf=bytearray([0x75])
i2c.read(readBuf)
print('mpu6050 chip id = {}'.format(readBuf))
print('mpu6050 chip id = {}'.format(hex(ord(b'h'))))
i2c.close()

  • board.json
{
"version": "2.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

openwritereadclosememReadmemWrite
打开i2ci2c写操作i2c读操作关闭i2c从I2C设备指定地址读取一段数据向I2C设备指定地址写一段数据

实例化
i2c=I2C()

i2c.open(node)

作用:打开i2c
返回: 成功:0,失败:故障码
参数说明:
属性类型必填描述
nodeString待操作的I2C设备节点,定义在board.json文件中。

i2c.write(writeBuf)

作用:往指定寄存器里写数据
返回值:0或正整数:真实发送的数据字节数。
				负整数:故障码。
参数说明:
属性类型必填描述
bufbytearray发送数据的存储数组,期待发送的字节数为buf的长度。

i2c.read(readBuf)

作用:读取指定寄存器的数据
返回: 0或正整数:真实接收到的数据字节数。
		负整数:故障码。
参数说明:
属性类型必填描述
bufbytearray接收数据的存储数组,期待接收的字节数为buf的长

i2c.close()

作用:关闭i2c
返回:成功:0
		失败:故障码。

memRead(buf, memaddr, addrsize) - 从I2C设备指定地址读取一段数据

参数说明:
属性类型必填描述
memaddrint起始地址。
bufint接收数据的存储数组,期待接收的字节数为buf的长度。
addrsizeintmemaddr的长度,有效值为8或16,单位:bit
返回值:
	0或正整数:真实接收到的数据字节数。
	负整数:故障码。

memWrite(buf, memaddr, addrsize) - 向I2C设备指定地址写一段数据

参数说明:
属性类型必填描述
memaddrint起始地址
bufint待写数据的存储数组,需要写入的数据长度为buf的长度。
addrsizeintmemaddr的长度,有效值为8或16,单位:bit
返回值:
	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、付费专栏及课程。

余额充值