# PCA9557 IO 扩展器
PCA9557 是 8 位 I2C IO 扩展器,适合扩展 GPIO 口。
## 使用示例
### 初始化 I2C
```c
static esp_err_t i2c_master_init(i2c_master_bus_handle_t *bus_handle)
{
i2c_master_bus_config_t bus_config = {
.i2c_port = I2C_NUM_0,
.sda_io_num = 15,
.scl_io_num = 14,
.clk_source = I2C_CLK_SRC_DEFAULT,
.flags.enable_internal_pullup = true
};
return i2c_new_master_bus(&bus_config, bus_handle);
}
```
### 设备初始化与方向配置
```c
pca9557_dev_t dev;
esp_err_t ret = pca9557_init(&dev, bus_handle, PCA9557_ADDRESS_DEFAULT);
if (ret != ESP_OK) {
ESP_LOGE(TAG, "PCA9557 init failed: %d", ret);
}
ret = pca9557_set_output_mask(&dev, 0x00);
ret = pca9557_set_configuration(&dev, 0xF8);
```
### 设置输出电平
```c
pca9557_set_output_state(&dev, (1 << 0), true);
pca9557_set_output_state(&dev, (1 << 1), false);
```
### 读取输入
```c
uint8_t inputs = 0;
pca9557_read_inputs(&dev, &inputs);
```
idf.py add-dependency "duruofu/pca9557^0.1.1"