記得第一次使用 XPT2046 電阻式觸摸屏是在 Microchip PIC24 製作上,硬件 + 程式化了接近兩個月時間完成。由於已經有之前的經驗和簡單的控制程式(用作 OV7670 的按鍵功能),這次使用在 ESP32 上,程式祇是用 I/O 掃瞄方式取得 XY 位置數值,祇需要用上 3天的時間,便完成硬件 + 程式製作。
ESP32 XPT2046 電阻式觸摸屏模組 I/O 程式 |
// XPT2046 Touch Screen I/O Definition
// XPT2046 CS=Chip Select Pin
#define XPT2046_CS 0
#define XPT2046_CS_0 {GPIO.out_w1tc
= (1 << XPT2046_CS);}
#define XPT2046_CS_1 {GPIO.out_w1ts = (1 << XPT2046_CS);}
//Definitions for T_DI pin Input (MCU Output
MOSI)
#define XPT2046_MOSI 18
#define XPT2046_MOSI_0 {GPIO.out_w1tc
= (1 << XPT2046_MOSI);}
#define XPT2046_MOSI_1 {GPIO.out_w1ts
= (1 << XPT2046_MOSI);}
//Definitions for T_DO pin Output (MCU Input
MISO)
#define XPT2046_MISO 17
#define XPT2046_MISO_IN gpio_get_level(GPIO_NUM_17)
//Definitions for T_CLK pin (SCK) Output
#define XPT2046_SCK 23
#define XPT2046_SCK_0 {GPIO.out_w1tc = (1 << XPT2046_SCK);}
#define XPT2046_SCK_1 {GPIO.out_w1ts = (1 << XPT2046_SCK);}
|
ESP32 XPT2046 電阻式觸摸屏模組初始化程式:
static void xpt2046_setupPins()
{
//
Output Pin Mode
pinMode(XPT2046_MOSI,
OUTPUT);
XPT2046_MOSI_0;
pinMode(XPT2046_CS,
OUTPUT);
XPT2046_CS_1;
pinMode(XPT2046_SCK,
OUTPUT);
XPT2046_SCK_0;
//
Input Pin Mode
pinMode(XPT2046_MISO,
INPUT);
pinMode(XPT2046_IRQ,
INPUT);
}
|
操作系統:Windows 7 64-bit 版本
開發環境:AiThinker05 版本
原程碼: ESP32 ESP-IDF V3.0rc1
程式: DIY-ESP32-033-XTP2046_01_IO-20181026
ESP32 XPT2046 電阻式觸摸屏模組 I/O 程式 |
ESP32 XPT2046 電阻式觸摸屏模組 XY 顯示 |
※ DIY - ESP32:OV7670 CMOS VGA 圖像傳感器介紹(十八)
※ DIY - ESP32:OV7670 CMOS VGA 圖像傳感器原理(十九)
※ DIY - ESP32:OV7670 CMOS VGA 圖像傳感器控制(二十)
※ DIY - ESP32:AverLogic AL422B FIFO 晶片介紹(二十一)
※ DIY - ESP32:AverLogic AL422B FIFO 晶片原理(二十二)
※ DIY - ESP32:OV7670 + AL422B FIFO 圖像傳感器模組介紹(二十三)
※ DIY - ESP32:ESP32 + OV7670 + AL422B 攝像頭模組硬件(二十四)
※ DIY - ESP32:ESP32 + OV7670 + AL422B 攝像頭模組程式(二十五)
※ DIY - ESP32:ESP32 XPT2046 電阻式觸摸屏模組電路(二十六)
※ DIY - ESP32:ESP32 XPT2046 電阻式觸摸屏模組 INT 程式(二十八)
※ DIY - ESP32:ESP32 OV7670 數位靜態相機 DSC 程式(二十九)
2018年 11月 10日 天氣報告
氣溫:24.0度 @ 20:00
相對濕度:百分之 73%
天氣:多雲
沒有留言:
張貼留言