viewesmart/bsp_uedx80480043_wb_a

1.0.0

Latest
uploaded 23 hours ago
Board Support Package (BSP) for VIEWE UEDX80480043E-WB (4.3-inch RGB + GT911)

Api (zh)

# API 说明

| :1234: [能力](#能力) | :pager: [显示与触摸](#显示与触摸) | :floppy_disk: [SD 与 SPIFFS](#sd-与-spiffs) | :radio_button: [按键](#按键) | :satellite: [Wi-Fi 与 BLE](#wi-fi-与-ble) |
| :---: | :---: | :---: | :---: | :---: |

## 概述

本文说明 **UEDX80480043E-WB** 实现的 ESP-BSP API,风格对齐乐鑫官方 BSP。

头文件二选一:

```c
#include "bsp/esp-bsp.h"
/* 或 */
#include "bsp/bsp_uedx80480043_wb_a.h"
```

能力宏为 `BSP_CAPS_*`。引脚宏为 `BSP_LCD_*`、`BSP_I2C_*`、`BSP_SD_SPI_*`。

更换 4.3" 屏幕、设置 Wi-Fi 名称/密码、I2C 速率及其他 Kconfig 选项见 [README_CN.md 配置](README_CN.md#配置)。

## 能力

| 宏 | 值 |
| --- | --- |
| `BSP_CAPS_DISPLAY` | 1 |
| `BSP_CAPS_TOUCH` | 1 |
| `BSP_CAPS_BUTTONS` | 1 |
| `BSP_CAPS_SDCARD` | 1 |
| `BSP_CAPS_WIFI` | 1 |
| `BSP_CAPS_BLUETOOTH` | 1 |
| `BSP_CAPS_AUDIO` | 0 |
| `BSP_CAPS_IMU` | 0 |

板名:`BSP_BOARD_UEDX80480043_WB_A`。

随面板选项变化的 LCD 宏(`idf.py menuconfig` → Component config → Board Support Package → Display → **4.3" LCD panel**):

* `BSP_LCD_H_RES` / `BSP_LCD_V_RES`
* `BSP_LCD_PANEL_NAME` — `"UEDX80480043"` 或 `"UEDX48270043"`
* `BSP_LCD_PIXEL_CLOCK_HZ`、`BSP_LCD_BOUNCE_BUFFER_HEIGHT`

不要在应用里写死 800×480 或 480×272。分辨率、RGB 时序、PCLK、bounce 高度会随面板选项自动匹配。详见 [更换屏幕](README_CN.md#更换屏幕800480--480272)。

## I2C

GT911 使用 BSP I2C。`bsp_touch_new()` 与 `bsp_display_start()` 会按需初始化。也可自行调用:

```c
bsp_i2c_init();
i2c_master_bus_handle_t i2c = bsp_i2c_get_handle();
/* ... */
bsp_i2c_deinit();
```

初始化可重复调用。默认速率为 `CONFIG_BSP_I2C_CLK_SPEED_HZ`(100 kHz)。

## 显示与触摸

### 启动 LVGL(推荐)

```c
lv_display_t *disp = bsp_display_start();
if (disp == NULL) {
    return;
}

if (bsp_display_lock(-1)) {
    /* 持锁期间才能调用 LVGL */
    lv_obj_t *label = lv_label_create(lv_screen_active());
    lv_label_set_text(label, "Hello");
    lv_obj_center(label);
    bsp_display_unlock();
}
```

`bsp_display_start()` 会:

1. 创建 RGB 面板(`esp_lcd_new_rgb_panel`)
2. 注册到 `esp_lvgl_adapter`
3. 启动 GT911 并注册为 LVGL indev(除非关闭触摸)
4. 启动 LVGL 任务
5. 打开背光

自定义:

```c
bsp_display_config_t cfg = BSP_DISPLAY_DEFAULT_CONFIG();
cfg.enable_touch = true;
cfg.task_stack_size = 32 * 1024;
cfg.tear_avoid_mode = ESP_LV_ADAPTER_TEAR_AVOID_MODE_TRIPLE_FULL;
lv_display_t *disp = bsp_display_start_with_config(&cfg);
```

| API | 说明 |
| --- | --- |
| `bsp_display_start()` | LCD + LVGL + 触摸 + 背光 |
| `bsp_display_start_with_config()` | 同上,带 `bsp_display_config_t` |
| `bsp_display_new()` | 仅 RGB 面板,不启动 LVGL;背光保持关闭 |
| `bsp_display_get()` / `bsp_display_get_panel()` | LVGL display / RGB panel 句柄 |
| `bsp_display_get_input_dev()` | LVGL 触摸 indev |
| `bsp_display_lock()` / `bsp_display_unlock()` | LVGL 线程安全锁 |
| `bsp_display_rotate()` | LVGL 旋转 |
| `bsp_display_brightness_set(0..100)` | 背光 PWM |
| `bsp_display_backlight_on()` / `off()` | 100% / 0% |
| `bsp_touch_new()` | 仅 GT911 |

`bsp_display_lock(-1)` 永久等待。`0` 为非阻塞。

### 不用 LVGL,只要 RGB 面板

```c
esp_lcd_panel_handle_t panel = NULL;
esp_lcd_panel_io_handle_t io = NULL; /* RGB 无 panel IO,恒为 NULL */
bsp_display_new(NULL, &panel, &io);
bsp_display_backlight_on();
```

## SD 与 SPIFFS

```c
esp_err_t ret = bsp_sdcard_mount();
if (ret == ESP_OK) {
    sdmmc_card_t *card = bsp_sdcard_get_handle();
    /* 文件在 BSP_SD_MOUNT_POINT,默认 /sdcard */
    bsp_sdcard_unmount();
}

bsp_spiffs_mount();
bsp_spiffs_unmount();
```

SD 为 SPI(`BSP_SD_SPI_*`)。挂载点:`CONFIG_BSP_SD_MOUNT_POINT`。

## 按键

BOOT 为 GPIO0:

```c
button_handle_t btn[BSP_BUTTON_NUM];
int btn_cnt = 0;
bsp_iot_button_create(btn, &btn_cnt, BSP_BUTTON_NUM);
```

## Wi-Fi 与 BLE

默认 STA 账号密码是 Kconfig 项(`idf.py menuconfig` → Component config → Board Support Package → Wi-Fi):

* `CONFIG_BSP_WIFI_SSID`
* `CONFIG_BSP_WIFI_PASSWORD`

```c
bsp_wifi_init();
ESP_ERROR_CHECK(bsp_wifi_connect(CONFIG_BSP_WIFI_SSID, CONFIG_BSP_WIFI_PASSWORD));
/* 也可直接传字符串:bsp_wifi_connect("ssid", "password"); */
while (!bsp_wifi_is_connected()) {
    vTaskDelay(pdMS_TO_TICKS(100));
}

bsp_bluetooth_init();  /* BLE + Bluedroid,内部会初始化 NVS */
```

若程序始终自己传入账号密码,这两项可留空。只支持 **2.4 GHz** 热点。详见 [设置 Wi-Fi 名称和密码](README_CN.md#设置-wi-fi-名称和密码)。

示例 `02_wifi` 使用的是 `CONFIG_EXAMPLE_WIFI_SSID` / `CONFIG_EXAMPLE_WIFI_PASSWORD`(Example Configuration),与 `CONFIG_BSP_WIFI_*` 不是同一组选项。

STA 辅助:`bsp_wifi_disconnect()`、`bsp_wifi_stop()`。

> **注意:** ESP32-S3 的 Wi-Fi 与 BLE 共用射频前端,不能同时收发。

Links

Target

To add this component to your project, run:

idf.py add-dependency "viewesmart/bsp_uedx80480043_wb_a^1.0.0"

download archive

Stats

  • Archive size
    Archive size ~ 28.30 KB
  • Downloaded in total
    Downloaded in total 0 times
  • Downloaded this version
    This version: 0 times

Badge

viewesmart/bsp_uedx80480043_wb_a version: 1.0.0
|