关于四元素和三维旋转的知识,推荐看一下https://github.com/Krasjet/quaternion。
- qmi8658六轴姿态传感器的原始数据读取函数如下。需要注意的是,陀螺仪数据的格式。
void Qmi8658_read_acc_xyz(float acc_xyz[3])
{
unsigned char buf_reg[6];
short raw_acc_xyz[3];
Qmi8658_read_reg(Qmi8658Register_Ax_L, buf_reg, 6); // 0x19, 25
raw_acc_xyz[0] = (short)((unsigned short)(buf_reg[1]<<8) |( buf_reg[0]));
raw_acc_xyz[1] = (short)((unsigned short)(buf_reg[3]<<8) |( buf_reg[2]));
raw_acc_xyz[2] = (short)((unsigned short)(buf_reg[5]<<8) |( buf_reg[4]));
acc_xyz[0] = (raw_acc_xyz[0]*ONE_G)/acc_lsb_div;
acc_xyz[1] = (raw_acc_xyz[1]*ONE_G)/acc_lsb_div;
acc_xyz[2] = (raw_acc_xyz[2