ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
uart_component_esp_idf.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef USE_ESP32
4
5#include <driver/uart.h>
7#include "uart_component.h"
8#ifdef USE_UART_WAKE_LOOP_ON_RX
9#include <driver/uart_select.h>
10#endif
11
12namespace esphome::uart {
13
20 public:
21 void setup() override;
22 void dump_config() override;
23 float get_setup_priority() const override { return setup_priority::BUS; }
24
25 void set_rx_full_threshold(size_t rx_full_threshold) override;
26 void set_rx_timeout(size_t rx_timeout) override;
27
28 void write_array(const uint8_t *data, size_t len) override;
29
30 bool peek_byte(uint8_t *data) override;
31 bool read_array(uint8_t *data, size_t len) override;
32
33 size_t available() override;
34 void flush() override;
35
36 uint8_t get_hw_serial_number() { return this->uart_num_; }
37
50 void load_settings(bool dump_config) override;
51 void load_settings() override { this->load_settings(true); }
52
53 protected:
54 void check_logger_conflict() override;
55 uart_port_t uart_num_;
56 uart_config_t get_config_();
57
58 bool has_peek_{false};
59 uint8_t peek_byte_;
60
61#ifdef USE_UART_WAKE_LOOP_ON_RX
62 // ISR callback for UART RX data notification — wakes the main loop directly.
63 static void uart_rx_isr_callback(uart_port_t uart_num, uart_select_notif_t uart_select_notif, BaseType_t *task_woken);
64#endif // USE_UART_WAKE_LOOP_ON_RX
65};
66
67} // namespace esphome::uart
68#endif // USE_ESP32
ESP-IDF UART driver wrapper.
void set_rx_timeout(size_t rx_timeout) override
bool peek_byte(uint8_t *data) override
void write_array(const uint8_t *data, size_t len) override
void set_rx_full_threshold(size_t rx_full_threshold) override
bool read_array(uint8_t *data, size_t len) override
static void uart_rx_isr_callback(uart_port_t uart_num, uart_select_notif_t uart_select_notif, BaseType_t *task_woken)
float get_setup_priority() const override
constexpr float BUS
For communication buses like i2c/spi.
Definition component.h:25
std::string size_t len
Definition helpers.h:817