前言:之前使用的jy61p陀螺仪会飘,就换了个三百大洋的单轴陀螺仪HWT101。
发现使用之前的程序不能将z轴置零,查找资料发现,101和jy61p使用的协议不太一样。
主要是写操作不太一样,寄存器不太一样。
jy61p :
61p中校准z轴,是在CALSW寄存器中,并将该寄存器置0x04
在软件中:
#define CALSW 0x01
#define CALANGLEZ 0x04
int32_t WitStartANGLEZCali(void) //z轴置零
{
if(WitWriteReg(KEY, KEY_UNLOCK) != WIT_HAL_OK) return WIT_HAL_ERROR;
if(s_uiProtoclo == WIT_PROTOCOL_MODBUS) p_WitDelaymsFunc(20);
else if(s_uiProtoclo == WIT_PROTOCOL_NORMAL) p_WitDelaymsFunc(1);
else ;
if(WitWriteReg(CALSW, CALANGLEZ) != WIT_HAL_OK) return WIT_HAL_ERROR;
return WIT_HAL_OK;
}
HWT101 :
HWT101 上电自动会z轴置零
由于HWT101是单轴,校准寄存器有所变化。
CALIYAW寄存器(0x76)中将值置0x00即可 校准
在软件中:
int32_t WHT101_ANGLEZCali(void) //101z轴置零
{
if(WitWriteReg(KEY, KEY_UNLOCK) != WIT_HAL_OK) return WIT_HAL_ERROR;
if(s_uiProtoclo == WIT_PROTOCOL_MODBUS) p_WitDelaymsFunc(20);
else if(s_uiProtoclo == WIT_PROTOCOL_NORMAL) p_WitDelaymsFunc(1);
else ;
if(WitWriteReg(0x76, 0x00) != WIT_HAL_OK) return WIT_HAL_ERROR;
return WIT_HAL_OK;
}
果然贵有贵的道理
101 真的太稳了,太稳了!!!