Strip TF and audio; keep touch-only screen test UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-17 18:34:19 +08:00
parent 87058272eb
commit f2b14eb30f
14 changed files with 104 additions and 714 deletions

View File

@@ -1,10 +1,7 @@
#include <Arduino.h>
#include <TFT_eSPI.h>
#include <lvgl.h>
#include "audio_test.h"
#include "pins.h"
#include "sd_info.h"
#include "touch.h"
#include "ui.h"
@@ -12,41 +9,21 @@ static constexpr uint32_t DRAW_BUF_SIZE =
(SCREEN_WIDTH * SCREEN_HEIGHT / 10 * (LV_COLOR_DEPTH / 8));
static uint32_t draw_buf[DRAW_BUF_SIZE / 4];
static uint32_t last_refresh_ms = 0;
static uint32_t last_btn_ui_ms = 0;
static constexpr uint32_t REFRESH_MS = 3000;
static void refresh_sd_ui() {
SdCardInfo info = sd_read_info();
Serial.println("---- TF Card ----");
if (!info.mounted) {
Serial.printf("Error: %s\n", info.error.c_str());
} else {
Serial.printf("Type: %s FS: %s Cap: %s\n", info.type, info.filesystem,
format_bytes(info.card_bytes).c_str());
}
ui_update(info);
}
static uint32_t last_dbg_ms = 0;
void setup() {
Serial.begin(115200);
delay(200);
Serial.println();
Serial.printf("LVGL %d.%d.%d | CYD TF + Touch Speaker\n", lv_version_major(),
Serial.printf("LVGL %d.%d.%d | touch test only\n", lv_version_major(),
lv_version_minor(), lv_version_patch());
pinMode(TFT_BL_PIN, OUTPUT);
digitalWrite(TFT_BL_PIN, HIGH);
audio_init();
touch_init();
lv_init();
// Sunton 官方:240x320 + ROTATION_270 → 横屏(勿 create 320x240,会花屏)
// 触摸见 touch.cpp(官方 mirror_x + 日志补偿)
lv_display_t *disp =
lv_tft_espi_create(SCREEN_WIDTH, SCREEN_HEIGHT, draw_buf, sizeof(draw_buf));
lv_display_set_rotation(disp, LV_DISPLAY_ROTATION_270);
@@ -57,31 +34,15 @@ void setup() {
lv_indev_set_display(indev, disp);
ui_create();
if (!sd_init()) {
Serial.println("SD mount failed at boot");
}
refresh_sd_ui();
last_refresh_ms = millis();
last_btn_ui_ms = millis();
}
void loop() {
lv_timer_handler();
lv_tick_inc(5);
audio_tick();
uint32_t now = millis();
if (now - last_refresh_ms >= REFRESH_MS) {
last_refresh_ms = now;
refresh_sd_ui();
}
// 播放过程中刷新按钮文字;同步触点调试
if (now - last_btn_ui_ms >= 200) {
last_btn_ui_ms = now;
ui_refresh_audio_buttons();
const uint32_t now = millis();
if (now - last_dbg_ms >= 50) {
last_dbg_ms = now;
ui_set_touch_debug(g_dbg_logic_x, g_dbg_logic_y, g_dbg_touch_down);
}