# 外设驱动

[English]

## LCD

- `esp_lcd_dpi_panel_event_callbacks_t::on_refresh_done` 回调已废弃。请使用 `esp_lcd_dpi_panel_event_callbacks_t::on_frame_buf_complete` 判断帧缓冲区何时可以被安全复用。

- MIPI DSI DPI 面板的 VSYNC 时序事件现在通过 `esp_lcd_dpi_panel_event_callbacks_t::on_vsync` 回调上报。

## UART

### UART 唤醒 API 更新

在 ESP-IDF v6.1 中，旧的 UART 唤醒 API `uart_set_wakeup_threshold()` 和 `uart_get_wakeup_threshold()` 已被标记为废弃，并将在未来版本中移除。这些 API 仅支持基于 RXD 边沿阈值的唤醒模式（Mode 0）。

新的统一 API `uart_wakeup_setup()` 提供了更灵活的配置方式，支持多种唤醒模式：

- Mode 0 (UART_WK_MODE_ACTIVE_THRESH) - 边沿阈值唤醒（对应旧 API 的功能）

- Mode 1 (UART_WK_MODE_FIFO_THRESH) - RX FIFO 阈值唤醒

- Mode 2 (UART_WK_MODE_START_BIT) - 起始位检测唤醒

- Mode 3 (UART_WK_MODE_CHAR_SEQ) - 字符序列检测唤醒

迁移示例：

旧代码：

    // 设置唤醒阈值
    ESP_ERROR_CHECK(uart_set_wakeup_threshold(UART_NUM_0, 3));
    ESP_ERROR_CHECK(esp_sleep_enable_uart_wakeup(UART_NUM_0));

    // 获取唤醒阈值
    int threshold;
    ESP_ERROR_CHECK(uart_get_wakeup_threshold(UART_NUM_0, &threshold));

新代码：

    #include "driver/uart_wakeup.h"

    // 配置边沿阈值唤醒模式（对应旧 API 的功能）
    uart_wakeup_cfg_t wakeup_cfg = {
        .wakeup_mode = UART_WK_MODE_ACTIVE_THRESH,
        .rx_edge_threshold = 3,  // 对应旧 API 的 wakeup_threshold 参数
    };
    ESP_ERROR_CHECK(uart_wakeup_setup(UART_NUM_0, &wakeup_cfg));
    ESP_ERROR_CHECK(esp_sleep_enable_uart_wakeup(UART_NUM_0));

    // 注意：新 API 没有直接对应的获取函数
    // 如果需要获取当前配置，需要自行保存配置值

#### 主要变化

1. API 替换： - `uart_set_wakeup_threshold()` → `uart_wakeup_setup()` - `uart_get_wakeup_threshold()` → 已移除

2. 配置方式： - 旧 API 使用简单的整数参数 - 新 API 使用 `uart_wakeup_cfg_t` 结构体，支持多种唤醒模式

3. 头文件： - 新 API 需要包含 `driver/uart_wakeup.h` 头文件

4. 功能扩展： - 新 API 支持多种唤醒模式，可根据芯片能力选择使用 - 不同唤醒模式的可用性取决于芯片的 SOC 能力（通过 `SOC_UART_WAKEUP_SUPPORT_XXX_MODE` 宏判断）

#### 注意事项

- 旧 API 仅支持 Mode 0（边沿阈值唤醒），迁移时只需设置 `wakeup_mode = UART_WK_MODE_ACTIVE_THRESH`

- 新 API 的 `rx_edge_threshold` 参数与旧 API 的 `wakeup_threshold` 参数含义相同

- 如果需要在运行时获取当前唤醒配置，建议在调用 `uart_wakeup_setup()` 时保存配置值

- 不同芯片支持的唤醒模式可能不同，请参考 UART 唤醒（仅适用于 Light-sleep 模式） 部分。

此文档对您有帮助吗？

- 反馈已收到，谢谢！
- 如果您有其他意见，欢迎填写乐鑫文档反馈表。

- 我们重视您的反馈。
- 您可以填写乐鑫文档反馈表告诉我们如何改进该文档。