资讯详情

STM32 磁场传感器HMC5883

一、IIC协议

默认(出厂) HMC5883LL 7 位从机地址为0x3C 或0x3D 读出操作。

将测量模式改为连续测量模式,通电时间后传输三个字节:0x3C 0x02 0x00

将00写入第二个寄存器或模式寄存器,完成从单一模式切换到式的设置。默认情况下,数据速率为15Hz更新,查询HMC5883L在新测量数据寄存器之前,I2C主机允许产生67毫秒的延迟。计算新数据时钟,发送:0x3D,并记录下的DXRA,DXRB,DZRA,DZRB,DYRA,DYRB时钟脉冲位于寄存器3到8上。HMC5883L,下一个0将自动重新点回寄存器3x3D的查询。在新数据写入任何寄存器之前,所有六个寄存器必须正确读取

(1)首先确定IIC即从机地址查手册知为 0x3C

(2)确定HMC5883_Init()初始操作的配置。注意连续测量模式测量数据的实时变化

HMC5883_WriteReg(0x00,0x14); //配置寄存器A:输出速率30HZ正常测量 HMC5883_WriteReg(0x02,0x00); //配置模式寄存器:连续测量模式

(3)读数据

我们需要的数据是X和Y,其中|是按位还是X和Y的高位和低位加起来,先将MSB左移8位再与LSB按位或运算

BUF[1]=Single_Read(HMC5883L_Addr,0x03);   BUF[2]=Single_Read(HMC5883L_Addr,0x04);  BUF[3]=Single_Read(HMC5883L_Addr,0x07);  BUF[4]=Single_Read(HMC5883L_Addr,0x08);  x=(BUF[1] << 8) | BUF[2];   y=(BUF[3] << 8) | BUF[4];   if(x>0x7fff)x-=0xffff;       if(y>0x7fff)y-=0xffff;       angle= atan2(y,x) * (180 / 3.14159265)   180; 

θ=ATan(y/x)求出的θ取值范围是[-PI/2, PI/2]。

θ=ATan2(y, x)求出的θ取值范围是[-PI, PI]。

(二) 什么是磁偏角和方位公式

HMC五八八三轴数位罗盘对角度的计算公式。angle= atan2(y,x) * (180 / 3.14159265) 180;其实就是这样:角度 = atan2(y,x) * (180 / π) 这里的角度是0~360°表示

标签: 传感器hmc5883l脉冲磁传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台