Rename touch pin macros to avoid TFT_eSPI TOUCH_CS clash.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-17 17:39:16 +08:00
parent a7a7685fc9
commit f05c5d6fd2
2 changed files with 24 additions and 24 deletions

View File

@@ -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

View File

@@ -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);