资讯详情

bmp280读出数据不变

最近用了无人机。MPU9250 bmp280,在读取bmp280传感器数据时,读取的数据没有变化。

状态寄存器为0,表明数据转换尚未完成。读取温度寄存器和气压寄存器时,固定值没有变化(寄存器值为0或128)。

网上搜索,有人被这个问题卡了半年...吓得我

幸运的是,我花了十多分钟才发现问题。这是一个初始化问题。参考本文:https://blog.csdn.net/liaokesen168/article/details/50930834

复位寄存器地址 BMP280_RST_REG :0xE0

uint8_t Bmp280Init(void)// {  if(I2cReadByte(BMP280_I2C_ADDR, BMP280_CHIP_ID) == BMP280_DEFAULT_CHIP_ID) /* 读取bmp280 ID*/  {   HAL_I2C_Mem_Read(&hi2c1, BMP280_I2C_ADDR<<1, BMP280_TEMPERATURE_CALIB_DIG_T1_LSB_REG, I2C_MEMADD_SIZE_8BIT, (uint8_t *)&bmp280Cal, 24, 1000);   I2cWriteByte(BMP280_I2C_ADDR, BMP280_RST_REG, 0xB6); ///数据全部清零   I2cWriteByte(BMP280_I2C_ADDR, BMP280_CTRL_MEAS_REG, BMP280_MODE);   I2cWriteByte(BMP280_I2C_ADDR, BMP280_CONFIG_REG, 5<<2);  /*配置IIR滤波*/   return 0;  }  return 1; } 

bmp初始化步骤280:

1. 读补偿数据

2. 复位BMP280,数据全部清零(这一步很重要,必须放在前面,否则后面设置无效)

3. 再设置模式、滤波器

详细步骤可到官方文档。

标签: 传感器bmp280

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

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