# 气压计配置

### 介绍

在3.2中，气压计驱动被转换为完全可配置/可重新配置的形式。

这样做的副作用便是，target.h中相关宏定义的解释方式发生了很大的变化，我们已经采取了相关措施保证其向后兼容性，但在某些情况下，某些使用气压计的配置可能无法再3.2上正常使用。

此页面解释了使气压计恢复到正常工作状态的相关的CLI变量/命令，以及飞控目标维护者所需的默认配置的更改。

### 使用CLI配置气压计

* 与气压计相关的CLI变量

| 变量                | `范围`                                                    | `描述`                                                                                        |
| ----------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `baro_bustype`    | `NONE`,`I2C`,`SPI`                                      | 指定所选气压计设备的总线类型                                                                              |
| `baro_i2c_device` | `0`\~MCU的最大I2C总线地址（起始为`1`，与`target.h`中的`I2Cx`中的`x`定义相同） | 指定该设备在I2C总线上的坐标。仅当`baro_bustype`为`I2C`时有效。`0`表示“无”                                          |
| `_i2c_address`    | `0`\~`199`(0x77)                                        | 设备的七位I2C地址值。`0`是一个特殊值，用于指定“*驱动设备默认地址*”。当值为`1`\~`7`时地址无效且行为不可预测。                             |
| `baro_spi_device` | `0`\~MCU的最大SPI总线地址（起始为`1`，与`target.h`中的`SPIx`中的`x`定义相同） | 指定该设备在SPI总线上的坐标。仅当`baro_bustype`为`SPI`时有效。`0`表示“无”                                          |
| `baro_hardware`   | `NONE`,`AUTO`,`BMP280`,`MS5611`,`BMP055`                | <p>NONE=禁用气压计支持</p><p>AUTO=固件将根据预定义的规则来确定气压计设备。</p><p>BMP280，MS5611\&BMP085=明确使用指定的设备驱动</p> |

* 如果设备是通过SPI连接的，则可以使用CLI命令resource来指定CS（片选）引脚

| 资源名称（resource name） | 描述                        |
| ------------------- | ------------------------- |
| `BARO_CS`           | 指定用于开启SPI总线上的气压计的CS（片选）引脚 |

* 请注意，并非所有总线类型和设备的组合都是针对某个特定飞控目标而内置好的
* 如果使用`baro_hardware = AUTO`，`baro_bustype = I2C`和`baro_i2c_address = 0`的组合将会使得飞控在I2C类型气压计设备上按照`BMP280`，`MS5611`和`BMP085`的顺序循环扫描`baro_i2c_device`。
