1.imu程序设计
(1)imu芯片用的是IC_MIS_LSM6DS3TR。在ST官网下载对应芯片的驱动文件,如图所示:
(2)编写模拟I2C驱动,因为imu采用I2C通信
(3)对应的读写函数、打印函数、延时函数 的实现
(4)imu初始化
初始化设置角加速度和角速度的分辨率分别是2g和125dps
设置数据输出频率833Hz
2.imu测试
(1)调用lsm6ds3_device_id_get(&dev_ctx, &whoamI)函数读取设备ID可以验证模拟IIC是否成功
正是设备ID,说明模拟IIC配置没问题
(2)在main函数里调用lsm6ds3_Get_Gyroscope();函数,效果如下图所示
可以看得出有零点偏移
解决:
初始化结束后,调用一次这个函数,这个函数的作用是从20ms以后每2ms记录一次陀螺仪的角速度,记录200次,最后求平均值,效果如下图: