前言
上一篇文章使用RT-Smart的IIC驱动OLED屏幕,进行基本的字符串显示,在使用过程中对RT-Smart有了一定熟悉,准备使用SPI驱动ST7789,但SPI接口没有引出,本次使用手上已有的传感器MPU6050进行使用。
过程
本次直接开始添加离线包,环境搭建请参考文章:
https://bbs.elecfans.com/jishu_2340575_1_1.html
在/D1S/userapps/rt-thread/bsp/allwinner/d1s下输入scons –menuconfig进行内核配置,添加MPU605使用所需的配置。
使用IIC0进行陀螺仪数据的读取,在RT-Thread Compents 下选择Device Drivers
使能I2C device drivers
在RT-Thread online packages下选择MPU6050离线包
在General Drivers Configuration下配置IIC
保存退出,更新一下,发现报错,不能更新MPU6050的离线包
解决方法,打开rt-studio随意新建一个工程,下发MPU6050的芯片包
查看离线包的json文件,如下所示:
打开自己的工程,发现使能的MPU6050后.json文件中没有进行相应的配置,将rt-studio生成的.json文件生成的内容复制到自己的工程。
在次更新,下载成功
将mpu使用的I2C设备修改为I2C0
保存,使用scons编译
将sd.bin拖到xfel同级目录下
替换掉原来的sd.bin
三、固件下载
先将SD卡格式化
然后插入开发板中,先安全FEL按键,然后按一下复位按键,使开发板进入FEL模式。
按一下复位按键,查看串口输出
输入help命令
输入mpu5xxx_test
将陀螺仪换个位置读取,数据读取成功
五、总结
本次完成了MPU6050的数据读取,成功的使用的该外设,当然是底层驱动,还为进行应用层的开发,在驱动层已经有了大致的了解,驱动使用时容易出现MenuConfig配置了但rtconfig.h不更新,每次都要手动的添加,当然在使用的过程中也遇到了很多错误,然后重新下载源码进行开发。
|