RT_Thread(RTT)使用软件包进行MPU6050陀螺仪六轴数据读取


前言

学会使用RTT提供的软件包对MPU6050六轴陀螺仪传感器的数据读取


一、新建工程,选择所使用的芯片,串口以及调试器,你用的是啥就选啥

在这里插入图片描述

二、在原理图上找到陀螺仪的IIC接口(一般都是使用IIC)

在这里插入图片描述

三、在主控芯片上找到对应接口,确定IIC所使用的引脚,我这里是PB6:SCL,PB7:SDA

在这里插入图片描述

四、查一下该芯片的引脚定义,得知,我们使用的是I2C1

在这里插入图片描述

五、在board.h中打开I2C1的宏,并进行引脚绑定

在这里插入图片描述

六、双击RT-Thread Settings

在这里插入图片描述

七、点击右侧箭头

在这里插入图片描述

八、打开I2C设备驱动程序

在这里插入图片描述

九、点击添加软件包

在这里插入图片描述

十、搜索MPU6050

在这里插入图片描述

十一、找到这个包

在这里插入图片描述

十二、点击添加即可

在这里插入图片描述

十三、记得保存

在这里插入图片描述

十四、保存后就会把软件包配置到你的工程中了

在这里插入图片描述

十五、在主函数中写入如下代码,注释我也写了,包的使用就这么简单,初始化后就可以读数据了

/*
 * Copyright (c) 2006-2023, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2023-12-16     RT-Thread    first version
 */

#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
//-------------软件包-------------------
#include "mpu6xxx.h"

#define MPU6050_I2C_BUS_NAME          "i2c1"  /* 传感器连接的I2C总线设备名称 */

int main(void)
{
    struct mpu6xxx_device *dev;  // 定义mpu6xxx设备结构体指针
    struct mpu6xxx_3axes accel, gyro;  // 定义存储加速度和陀螺仪数据的结构体变量

    // 初始化mpu6xxx设备,MPU6050_I2C_BUS_NAME是I2C总线名称,RT_NULL表示自动探测I2C设备
    dev = mpu6xxx_init(MPU6050_I2C_BUS_NAME, RT_NULL);

    if (dev == RT_NULL)
    {
        rt_kprintf("mpu6xxx init failed\n");
        return -1;
    }
    rt_kprintf("mpu6xxx init succeed\n");

    while(1)
    {
        // 从mpu6xxx设备读取加速度数据并存储在accel结构体中
        mpu6xxx_get_accel(dev, &accel);
        // 从mpu6xxx设备读取陀螺仪数据并存储在gyro结构体中
        mpu6xxx_get_gyro(dev, &gyro);

        // 打印加速度数据
        rt_kprintf("accel.x = %3d, accel.y = %3d, accel.z = %3d ", accel.x, accel.y, accel.z);
        // 打印陀螺仪数据
        rt_kprintf("gyro.x = %3d gyro.y = %3d, gyro.z = %3d\n", gyro.x, gyro.y, gyro.z);

        // 延时300毫秒
        rt_thread_mdelay(300);
    }
    return RT_EOK;
}

十六、编译一下发现有如下报错,链接错误通常是由于ROM大小不够导致的,当然如果你没有报错,可以跳过这步

在这里插入图片描述

十七、接下来我们来解决报错,双击link.lds,打开链接脚本编辑器

在这里插入图片描述

十八、修改ROM的大小,原来是64,现在改为128

在这里插入图片描述

十九、再编译,报错解决,可以看到ROM占了66K,所以原来的64K是不够的,所以会报错

在这里插入图片描述

二十、下载代码后,连接好串口,打开终端查看数据,注意串口端口要选对,不然查看不到数据

在这里插入图片描述

二十一、数据正常,后续进行滤波就可以使用啦

在这里插入图片描述

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

先睡个好觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值