2018年11月10日 星期六

DIY - ESP32:ESP32 XPT2046 電阻式觸摸屏模組 I/O 程式(二十七)

DIY - ESP32:ESP32 XPT2046 電阻式觸摸屏模組 I/O 程式(二十七):

記得第一次使用 XPT2046 電阻式觸摸屏是在 Microchip PIC24 製作上,硬件 + 程式化了接近兩個月時間完成。由於已經有之前的經驗和簡單的控制程式(用作 OV7670 的按鍵功能),這次使用在 ESP32 上,程式祇是用 I/O 掃瞄方式取得 XY 位置數值,祇需要用上 3天的時間,便完成硬件 + 程式製作。

ESP32 XPT2046 電阻式觸摸屏模組 I/O 程式
ESP32 XPT2046 電阻式觸摸屏模組 IO 設定:
// 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%
天氣:多雲

沒有留言:

張貼留言