STM32F103C8 使用RT-Thread軟件包系統讀取MPU6050

STM32F103C8 使用RT-Thread軟件包系統讀取MPU6050

  已經使用了一段時間的RTT了,最近看到RTT的微信公衆號經常推送軟件包的內容,今天就試一下吧。
MPU6050作爲一個很常見的元件自然有相應的軟件包啦,

在工程根目錄打開ENV工具

1.在這個目錄下可以發現很多軟件包,我們將MPU6xxx打開
在這裏插入圖片描述
2.在打開RTT的iic支持包,同時保持使用軟件I2C打開。
退出編譯重新生成一下工程,這樣所有需要的文件就都被添加到工程中了。
在這裏插入圖片描述
3.使用keil打開工程,在rtconfig.h文件中添加如下內容:

#define BSP_USING_I2C2
#define BSP_I2C2_SCL_PIN GET_PIN(B, 10)
#define BSP_I2C2_SDA_PIN GET_PIN(B, 11)

編譯工程,就可以使用了,這時打開串口助手
輸入mpu6xxx probe i2c2 可以查到到mpu6050設備
輸入mpu6xxx read 可以查看加速度和角速度大小
還有一些其他命令在軟件包readme文件中有介紹。
在這裏插入圖片描述
4.如果要把代碼加到工程中可以參考mpu6xxx_sample.c修改。
其中一些需要注意的是:
加入 #include “mpu6xxx.h” 頭文件
加入如下代碼

		/* Initialize mpu6xxx, The parameter is RT_NULL, means auto probing for i2c*/
    mpu_dev = mpu6xxx_init(MPU6XXX_DEVICE_NAME, RT_NULL);
		if (mpu_dev == RT_NULL)
    {
        rt_kprintf("mpu6xxx init failed\n");
        return -1;
    }

void MPU_entry(void *parameter)
{
	struct mpu6xxx_3axes accel, gyro;
	while (1)
	{
		mpu6xxx_get_accel(mpu_dev, &accel);
    	mpu6xxx_get_gyro(mpu_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);
		rt_thread_mdelay(500);
	}
}

最終結果是這樣的
在這裏插入圖片描述

好的這篇博客就都這裏了

發佈了8 篇原創文章 · 獲贊 10 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章