6static const uint8_t IO_EXTENSION_DIRECTION = 0x02;
7static const uint8_t IO_EXTENSION_IO_OUTPUT_ADDR = 0x03;
8static const uint8_t IO_EXTENSION_IO_INPUT_ADDR = 0x04;
9static const uint8_t IO_EXTENSION_PWM_ADDR = 0x05;
10static const uint8_t IO_EXTENSION_ADC_ADDR = 0x06;
11static const uint8_t IO_EXTENSION_RTC_INT_ADDR = 0x07;
13static const char *
const TAG =
"waveshare_io_ch32v003";
22 if (!step1 || !step2) {
23 ESP_LOGE(TAG,
"Failed to initialize Waveshare IO expander");
47 ESP_LOGCONFIG(TAG,
"WaveshareIO:");
50 ESP_LOGE(TAG, ESP_LOG_MSG_COMM_FAIL);
59 if (!this->
read_bytes(IO_EXTENSION_ADC_ADDR, data, 2)) {
63 uint16_t adc_value = (data[1] << 8) | data[0];
73 if (!this->
read_bytes(IO_EXTENSION_RTC_INT_ADDR, &data, 1)) {
89 if (!this->
write_byte(IO_EXTENSION_PWM_ADDR, value)) {
124 if (!this->
read_bytes(IO_EXTENSION_IO_INPUT_ADDR, &data, 1)) {
145 if (!this->
write_byte(IO_EXTENSION_IO_OUTPUT_ADDR, data)) {
165 return buf_append_printf(buffer,
len, 0,
"EXIO%u via WaveshareIO", this->
pin_);
void mark_failed()
Mark this component as failed.
void status_set_warning()
void enable_loop()
Enable this component's loop.
void disable_loop()
Disable this component's loop.
void status_clear_warning()
WaveshareIOCH32V003Component * parent_
bool write_byte(uint8_t a_register, uint8_t data) const
bool read_bytes(uint8_t a_register, uint8_t *data, uint8_t len)
Compat APIs All methods below have been added for compatibility reasons.
void pin_mode(uint8_t pin, gpio::Flags flags)
void set_pwm_value(uint8_t value)
bool digital_read_cache(uint8_t pin) override
void digital_write_hw(uint8_t pin, bool value) override
uint8_t get_rtc_interrupt_status()
void dump_config() override
bool write_gpio_outputs_()
float get_setup_priority() const override
bool digital_read_hw(uint8_t pin) override
void digital_write(bool value) override
bool digital_read() override
void pin_mode(gpio::Flags flags) override
size_t dump_summary(char *buffer, size_t len) const override
constexpr float IO
For components that represent GPIO pins like PCF8573.