STM32H743+BMI088 I2C调试记录

最近遇到需要调试博世的一款IMU芯片,调好了留个纪念~

首先CUBEMX配置I2C,这里不多做赘述,参数默认即可。

然后要关注一下硬件IMU来判断一下I2C地址:

根据数据手册可以得知加速度计和陀螺仪的地址是不一样的,根据硬件接法的不同有两种情况,此处大家根据硬件选择。

这个芯片我们需要的数据就是三个方向的加速度和角加速度,我们首先来看加速度:

他这个加速度是一个s16的值,由两个u8拼凑而成,同时还有一个寄存器用来控制加速度的范围:

所以我们要做的就是读寄存器,然后拼接值,再根据范围确定这个值,同时这个加速度值还有一个计算方式:

这边不多做赘述,我们直接上代码:

//开始之前首先要对芯片进行复位操作
void imu_init(void) {
    i2c_txbuf[0] = 0x7E;
    i2c_txbuf[1] = 0xB6;
    HAL_I2C_Master_Transmit(&hi2c1, 0x30, i2c_txbuf, 2, 1000);
    HAL_Delay(10);
    i2c_txbuf[0] = 0x7D;
    i2c_txbuf[1] = 0x04;
    HAL_I2C_Master_Transmit(&hi2c1, 0x30, i2c_txbuf, 2, 1000);
    HAL_Delay(10);
    i2c_txb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值