diff --git a/include/pins.h b/include/pins.h index b7ca59f..7bcca58 100644 --- a/include/pins.h +++ b/include/pins.h @@ -14,12 +14,12 @@ // 板载 SC8002B 功放 → P4 喇叭座(DAC2) #define SPEAKER_PIN 26 -// 触摸 XPT2046(SoftSPI,避开 VSPI) -#define TOUCH_IRQ 36 -#define TOUCH_MOSI 32 -#define TOUCH_MISO 39 -#define TOUCH_CLK 25 -#define TOUCH_CS 33 +// 触摸 XPT2046(SoftSPI,避开 VSPI;勿用 TOUCH_CS,会与 TFT_eSPI 冲突) +#define CYD_TOUCH_IRQ 36 +#define CYD_TOUCH_MOSI 32 +#define CYD_TOUCH_MISO 39 +#define CYD_TOUCH_CLK 25 +#define CYD_TOUCH_CS 33 // 物理竖屏分辨率(TFT 驱动) #define SCREEN_WIDTH 240 diff --git a/src/touch.cpp b/src/touch.cpp index a5bc2f7..efcbc94 100644 --- a/src/touch.cpp +++ b/src/touch.cpp @@ -5,10 +5,10 @@ static void soft_spi_write(uint8_t data) { for (int i = 7; i >= 0; --i) { - digitalWrite(TOUCH_MOSI, (data >> i) & 1); - digitalWrite(TOUCH_CLK, HIGH); + digitalWrite(CYD_TOUCH_MOSI, (data >> i) & 1); + digitalWrite(CYD_TOUCH_CLK, HIGH); delayMicroseconds(1); - digitalWrite(TOUCH_CLK, LOW); + digitalWrite(CYD_TOUCH_CLK, LOW); delayMicroseconds(1); } } @@ -16,41 +16,41 @@ static void soft_spi_write(uint8_t data) { static uint16_t soft_spi_read12() { uint16_t v = 0; for (int i = 0; i < 12; ++i) { - digitalWrite(TOUCH_CLK, HIGH); + digitalWrite(CYD_TOUCH_CLK, HIGH); delayMicroseconds(1); - v = (v << 1) | (digitalRead(TOUCH_MISO) ? 1 : 0); - digitalWrite(TOUCH_CLK, LOW); + v = (v << 1) | (digitalRead(CYD_TOUCH_MISO) ? 1 : 0); + digitalWrite(CYD_TOUCH_CLK, LOW); delayMicroseconds(1); } // 丢掉多余时钟位 - digitalWrite(TOUCH_CLK, HIGH); + digitalWrite(CYD_TOUCH_CLK, HIGH); delayMicroseconds(1); - digitalWrite(TOUCH_CLK, LOW); + digitalWrite(CYD_TOUCH_CLK, LOW); return v; } static uint16_t xpt_read(uint8_t cmd) { - digitalWrite(TOUCH_CS, LOW); + digitalWrite(CYD_TOUCH_CS, LOW); soft_spi_write(cmd); delayMicroseconds(5); uint16_t v = soft_spi_read12(); - digitalWrite(TOUCH_CS, HIGH); + digitalWrite(CYD_TOUCH_CS, HIGH); return v; } void touch_init() { - pinMode(TOUCH_CS, OUTPUT); - pinMode(TOUCH_CLK, OUTPUT); - pinMode(TOUCH_MOSI, OUTPUT); - pinMode(TOUCH_MISO, INPUT); - pinMode(TOUCH_IRQ, INPUT); - digitalWrite(TOUCH_CS, HIGH); - digitalWrite(TOUCH_CLK, LOW); + pinMode(CYD_TOUCH_CS, OUTPUT); + pinMode(CYD_TOUCH_CLK, OUTPUT); + pinMode(CYD_TOUCH_MOSI, OUTPUT); + pinMode(CYD_TOUCH_MISO, INPUT); + pinMode(CYD_TOUCH_IRQ, INPUT); + digitalWrite(CYD_TOUCH_CS, HIGH); + digitalWrite(CYD_TOUCH_CLK, LOW); Serial.println("Touch: XPT2046 SoftSPI ready"); } void touch_read_cb(lv_indev_t * /*indev*/, lv_indev_data_t *data) { - const bool irq = (digitalRead(TOUCH_IRQ) == LOW); + const bool irq = (digitalRead(CYD_TOUCH_IRQ) == LOW); uint16_t raw_x = xpt_read(0x90); uint16_t raw_y = xpt_read(0xD0);