关于mpu6050发送数据函数,为什么要这么设置数组?

2019-08-17 03:59发布

mpu6050发送数据函数,为什么要这么设置数组?tbuf[0]=(aacx>>8)&0XFF;tbuf[1]=aacx&0XFF;tbuf[0]与tbuf[1]是干嘛用的啊?
void mpu6050_send_data(short aacx,short aacy,short aacz,short gyrox,short gyroy,short gyroz)
{
        u8 tbuf[12];
        tbuf[0]=(aacx>>8)&0XFF;
        tbuf[1]=aacx&0XFF;
        tbuf[2]=(aacy>>8)&0XFF;
        tbuf[3]=aacy&0XFF;
        tbuf[4]=(aacz>>8)&0XFF;
        tbuf[5]=aacz&0XFF;
        tbuf[6]=(gyrox>>8)&0XFF;
        tbuf[7]=gyrox&0XFF;
        tbuf[8]=(gyroy>>8)&0XFF;
        tbuf[9]=gyroy&0XFF;
        tbuf[10]=(gyroz>>8)&0XFF;
        tbuf[11]=gyroz&0XFF;
        usart1_niming_report(0XA1,tbuf,12);//自定义帧,0XA1
}       

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
学霸君
1楼-- · 2019-08-17 08:30
因为6050的X,Y,Z的加速度与陀螺仪原始数据都放在寄存器中,每个方位的原始数据分两个寄存器存放,并且其3个方位寄存器地址连续,所以在读取采用一个数组来连续读取保存原始数据,然后整合成aacx,aacy等等,便于在LCD上显示,发送给上为机是又拆分,tbuf[0]=(aacx>>8)&0XFF;tbuf[1]=aacx&0XFF;tbuf[0]与tbuf[1],这一句就是把aacx拆分,我认为是拆分的原因是因为串口一次只能发送八bit的数据,所以aacx,,,,等拆分成tbuf数组在发送给上位机
fucha2
2楼-- · 2019-08-17 12:21
 精彩回答 2  元偷偷看……

一周热门 更多>