【问题标题】:Why am I getting the wrong sensitivity output for this accelerometer?为什么我得到这个加速度计的错误灵敏度输出?
【发布时间】:2021-11-26 05:45:58
【问题描述】:

我正在使用带有 STM32 I2C Hal 库的 LSM303AGR 加速度计 (Datasheet),但我无法确定灵敏度。

这是我设置配置寄存器的代码:

void LSM303AGR_Init() {

uint8_t Data[2] = {0};
Data[0]= 0x20;
Data[1]= 0x57;                                                                                                                                                                      //ODR @100Hz                                                                                                //Accelerometer Control Register 1 and Data
HAL_I2C_Master_Transmit(&hi2c1,0x19<<1,Data,2,50);
Data[0]= 0x23;
Data[1]= 0x20;                                                                                                                                                                      //+/-8G and in normal mode
HAL_I2C_Master_Transmit(&hi2c1,0x19<<1,Data,2,50);}
                                                                                            

第一次 I2C 写入传输是寄存器 0x​​20,应该将传感器设置为正常模式并输出 100Hz 的数据速率,第二次 I2C 写入传输应该将比例设置为 +/-8G。

另外,这是我读取 XYZ 16 位值并转换为 mg 的代码(15.63 是数据表中的灵敏度):

void LSM303AGR_AccReadXYZ(float* pData) {

HAL_I2C_Master_Transmit(&hi2c1,(0x19<<1)|0x01,&accXYZregAutoRead ,1,50);
HAL_I2C_Master_Receive(&hi2c1,(0x19<<1)|0x01, buffer,6,50); 
for(int i=0; i<3; i++) {
pData[i]=(float)((int16_t)((uint16_t)buffer[2*i+1] << 8) | buffer[2*i]) / 15.63;} //Readings in mg                               
}

我知道我正在写入这些寄存器并通过调试从正确的寄存器中读取。但是,通过上面的设置,我在桌面上使用 15.63 的灵敏度得到大约 250mg 的输出值(对于 z 轴,当然其他的大约为零)但是当我将 15.63 更改为 3.9 灵敏度时(数据表第 13 页)我在 z 轴上得到大约 1000mg 这是正确的!问题是,我的寄存器设置为 +/-8G(数据表第 49 页)和正常电源模式(数据表第 47 页),根据数据表,灵敏度应该是 15.63 而不是 3.9!

任何帮助将不胜感激!

【问题讨论】:

    标签: stm32 accelerometer sensors


    【解决方案1】:

    您使用的是普通模式,因此您的数据应该是 10 位,并且您应该将读取数右移 6(值左对齐)。

    【讨论】:

    • 寄存器左对齐。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2012-04-26
    相关资源
    最近更新 更多