/**************************实现函数******************************************** *函数原型: void HMC58X3_getRaw(int16_t *x,int16_t *y,int16_t *z) *功 能: 写HMC5883L的寄存器 输入参数: reg 寄存器地址 val 要写入的值 输出参数: 无 *******************************************************************************/ void HMC58X3_getRaw(int16_t *x,int16_t *y,int16_t *z) { unsigned char vbuff[6]; vbuff[0]=vbuff[1]=vbuff[2]=vbuff[3]=vbuff[4]=vbuff[5]=0; IICreadBytes(HMC58X3_ADDR,HMC58X3_R_XM,6,vbuff); HMC58X3_newValues(((int16_t)vbuff[0] << 8) | vbuff[1],((int16_t)vbuff[4] << 8) | vbuff[5],((int16_t)vbuff[2] << 8) | vbuff[3]); *x = HMC5883_FIFO[0][10]; *y = HMC5883_FIFO[1][10]; *z = HMC5883_FIFO[2][10]; }
U8 HMC58X3_getRaw(int16_t *x,int16_t *y,int16_t *z) { unsigned char vbuff[6]; unsigned char ok; vbuff[0]=vbuff[1]=vbuff[2]=vbuff[3]=vbuff[4]=vbuff[5]=0; ok=read_hmc5883l(HMC58X3_R_XM,vbuff,6); HMC58X3_newValues(((int16_t)vbuff[0] << 8) | vbuff[1],((int16_t)vbuff[4] << 8) | vbuff[5],((int16_t)vbuff[2] << 8) | vbuff[3]); *x = HMC5883_FIFO[0][10]; *y = HMC5883_FIFO[1][10]; *z = HMC5883_FIFO[2][10]; return ok; }