0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【GD32H757Z海棠派開發(fā)板使用手冊】第十五講 TFT-8080電阻屏屏觸摸實(shí)驗(yàn)

聚沃科技 ? 2024-09-19 09:30 ? 次閱讀

15.1實(shí)驗(yàn)內(nèi)容

通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容:

  • LCD觸控原理
  • SPI外設(shè)功能

15.2實(shí)驗(yàn)原理

本實(shí)驗(yàn)介紹通過SPI接口控制8080接口屏的touch功能。

15.3硬件設(shè)計(jì)

8080接口屏touch部分實(shí)現(xiàn)如下圖所示,通過SPI接口進(jìn)行實(shí)現(xiàn)。

wKgZombrfmaAIODWAAGWNleB-os947.png

15.4代碼解析

15.4.1Touch SPI定義

Touch 的SPI定義如下所示:

JSON
//定義TOUCH_SPI
SPI_MASTER_SCK_GPIO_DEF(TOUCH_SPI,B,3,GPIO_AF_5);
SPI_MASTER_MOSI_GPIO_DEF(TOUCH_SPI,B,5,GPIO_AF_5);
SPI_MASTER_MISO_GPIO_DEF(TOUCH_SPI,B,4,GPIO_AF_5);
SPI_MASTER_CS_GPIO_DEF(TOUCH_SPI,A,8);

SPI_TX_DMA_DEF(TOUCH_SPI,SPI0,DMA1,DMA_CH1);
SPI_RX_DMA_DEF(TOUCH_SPI,SPI0,DMA1,DMA_CH0);
SPI_DEF(TOUCH_SPI,SPI0,SPI_MASTER,SPI_DATASIZE_8BIT,SPI_CK_PL_LOW_PH_1EDGE,SPI_PSC_64,SPI_ENDIAN_MSB,MODE_POLL);

15.4.2SPI初始化配置

Touch SPI初始化配置如下所示:

JSON
void bsp_spi_init(typdef_spi_struct *spix)
{
driver_spi_init(spix);
}

15.4.3屏幕touch狀態(tài)獲取函數(shù)

屏幕touch狀態(tài)獲取函數(shù)如下所示,通過該函數(shù)可掃描獲取touch位置。

JSON
Drv_Err bsp_touch_scan(uint16_t *x, uint16_t *y)
{
static uint8_t count=0;
uint16_t touch_ad_x,touch_ad_y = 0;
/* touch pen is active */
if (SET == bsp_touch_pen_irq())
{
if(++count>=20 || lcd_touch_panel_struct.TOUCH_State==1)
{
lcd_touch_panel_struct.TOUCH_State=1;
if((SUCCESS != bsp_touch_ad_xy_get(&touch_ad_x, &touch_ad_y))){
return DRV_ERROR;
}
// if(invalid_count >= 20){
// return DRV_ERROR;
// }
}else
{
return DRV_ERROR;
}
}else{
count=0;
if(lcd_touch_panel_struct.TOUCH_State==1){
lcd_touch_panel_struct.TOUCH_State=2;
lcd_touch_panel_struct.Touch_x_Last=*x;
lcd_touch_panel_struct.Touch_y_Last=*y;
}
return DRV_ERROR;
}


*x=bsp_touch_coordinate_x_get(touch_ad_x);
*y=bsp_touch_coordinate_y_get(touch_ad_y);
if(count==20)
{
lcd_touch_panel_struct.TOUCH_State=1;
lcd_touch_panel_struct.Touch_x_First=*x;
lcd_touch_panel_struct.Touch_y_First=*y;
}
lcd_touch_panel_struct.Touch_x_Now=*x;
lcd_touch_panel_struct.Touch_y_Now=*y;

return DRV_SUCCESS;
}

15.4.4主函數(shù)

本例程主函數(shù)如下所示,在本例程中,8080液晶屏上顯示4個LED圖標(biāo),通過觸控點(diǎn)到哪個LED,MCU檢測到后打開對應(yīng)的LED燈。

JSON
int main(void)
{
uint16_t num[4]={0,0,0,0}; /* store the touch point number on four buttons */
uint8_t count=0;
char* led_string[4]={"LED1","LED2","LED3","LED4"} ;
uint8_t button_id=0;

driver_init(); /* 延時和公共驅(qū)動部分初始化 */
bsp_8080_lcd_init(); /* 初始化LCD */
bsp_led_group_init();

//初始化SPI
bsp_spi_init(&TOUCH_SPI);

/* configure the GPIO of SPI touch panel */
bsp_touch_panel_init(bsp_8080_lcd_parameter.width,bsp_8080_lcd_parameter.height);

delay_ms(50);

/* clear the LCD screen */
bsp_8080_lcd_clear(WHITE);

bsp_8080_lcd_show_log();


bsp_8080_lcd_show_string(a1+30, b1+80,bsp_8080_lcd_parameter.width,FONT_ASCII_24_12,FONT_ASCII_24_12,led_string[0],BLUE);
/* draw picture of button on LCD screen */
bsp_8080_lcd_color_fill(a1+30,b1+40,a1+30+40-1,b1+40+40-1,(uint16_t *)(image_off + BMP_HEADSIZE));

bsp_8080_lcd_show_string(a2+30, b1+80,bsp_8080_lcd_parameter.width,FONT_ASCII_24_12,FONT_ASCII_24_12,led_string[1],BLUE);
bsp_8080_lcd_color_fill(a2+30,b1+40,a2+30+40-1,b1+40+40-1,(uint16_t *)(image_off + BMP_HEADSIZE));

bsp_8080_lcd_show_string(a1+30, b2+80,bsp_8080_lcd_parameter.width,FONT_ASCII_24_12,FONT_ASCII_24_12,led_string[2],BLUE);
bsp_8080_lcd_color_fill(a1+30,b2+40,a1+30+40-1,b2+40+40-1,(uint16_t *)(image_off + BMP_HEADSIZE));

bsp_8080_lcd_show_string(a2+30, b2+80,bsp_8080_lcd_parameter.width,FONT_ASCII_24_12,FONT_ASCII_24_12,led_string[3],BLUE);
bsp_8080_lcd_color_fill(a2+30,b2+40,a2+30+40-1,b2+40+40-1,(uint16_t *)(image_off + BMP_HEADSIZE));

while(1){
/* get the position of touch on LCD screen */
if(DRV_SUCCESS == bsp_touch_scan(&touch_x,&touch_y)){
count++;
get_touch_area(touch_x,touch_y,num);
}
else
{
count=0;
}
/* generate response to the touch(turn on LED and change picture )*/
if(count==10){
button_id = find_max(num);
turn_on_led(button_id);
change_picture(button_id);
num[0]=num[1]=num[2]=num[3]=0;
count=0;
}
}
}

15.5實(shí)驗(yàn)結(jié)果

將本例程燒錄到海棠派開發(fā)板中,通過手指點(diǎn)擊屏幕上的LED圖標(biāo),可以點(diǎn)亮對應(yīng)的LED.

教程GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程,關(guān)注聚沃科技官網(wǎng)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6022

    文章

    44375

    瀏覽量

    628280
  • 嵌入式
    +關(guān)注

    關(guān)注

    5045

    文章

    18813

    瀏覽量

    298429
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4768

    瀏覽量

    96150
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    400

    瀏覽量

    23971
收藏 人收藏

    評論

    相關(guān)推薦

    GD32H757Z海棠開發(fā)板使用手冊第十三講 SDIO-SD卡讀寫實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?USB協(xié)議基本原理 ?GD32H7xx USBHS的使用 ?虛擬鍵盤的協(xié)議原理及使用
    的頭像 發(fā)表于 06-06 11:26 ?1499次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>】<b class='flag-5'>第十</b>三講 SDIO-SD卡讀寫<b class='flag-5'>實(shí)驗(yàn)</b>

    迅為iMX6ULL開發(fā)板使用手冊資料下載

    的知識點(diǎn),它都有!《嵌入式Linux開發(fā)指南》+《開發(fā)板使用手冊》+《裸機(jī)使用手冊》鏈接:https://pan.baidu.com/s/1Xat4C-cDa2Gi1UwNckNRTw
    發(fā)表于 12-02 14:13

    YL-51開發(fā)板使用手冊

    YL-51開發(fā)板使用手冊,YL-51開發(fā)板使用手冊YL-51開發(fā)板使用手冊YL-51
    發(fā)表于 05-10 16:31 ?21次下載

    51開發(fā)板使用手冊

    51開發(fā)板使用手冊,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-23 15:45 ?11次下載

    CoolMayHMI觸摸屏使用手冊

    CoolMayHMI觸摸屏使用手冊
    發(fā)表于 12-29 18:19 ?34次下載

    KC705開發(fā)板英文使用手冊

    KC705開發(fā)板英文使用手冊
    發(fā)表于 11-01 10:19 ?4次下載

    iTOP-3399開發(fā)板使用手冊大更新

    iTOP-3399開發(fā)板使用手冊大更新
    的頭像 發(fā)表于 12-10 15:46 ?1208次閱讀
    iTOP-3399<b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>大更新

    GD32H757Z海棠開發(fā)板使用手冊】第二 GPIO-按鍵查詢檢測實(shí)驗(yàn)

    2.1實(shí)驗(yàn)內(nèi)容通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容:GPIO輸入功能原理;按鍵查詢輸入檢測原理;2.2實(shí)驗(yàn)原理2.2.1GPIO輸入功能原理GD32H7XX系列MCUGPIO輸入配置結(jié)構(gòu)如下圖所
    的頭像 發(fā)表于 04-17 10:42 ?486次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>】第二<b class='flag-5'>講</b> GPIO-按鍵查詢檢測<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32H757Z海棠開發(fā)板使用手冊】第八 ADC-規(guī)則組多通道采樣實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ADC的簡介 GD32FH757 ADC工作原理 DMA和DMAMUX的原理 規(guī)則組多通道循環(huán)采樣
    的頭像 發(fā)表于 05-14 09:39 ?387次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>】第八<b class='flag-5'>講</b> ADC-規(guī)則組多通道采樣<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32H757Z海棠開發(fā)板使用手冊】第九 USART-printf打印實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?串口簡介 ?GD32H757串口工作原理 ?使用printf打印信息
    的頭像 發(fā)表于 05-15 11:39 ?430次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>】第九<b class='flag-5'>講</b> USART-printf打印<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32H757Z海棠開發(fā)板使用手冊第十 USART-中斷串口收發(fā)實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?使用中斷進(jìn)行串口收發(fā)
    的頭像 發(fā)表于 05-16 10:30 ?389次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>】<b class='flag-5'>第十</b><b class='flag-5'>講</b> USART-中斷串口收發(fā)<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32H757Z海棠開發(fā)板使用手冊第十一講 SPI-SPI NOR FLASH讀寫實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?SPI簡介 ?GD32H7 SPI簡介 ?SPI NOR FLASH——GD25Q128ESIGR簡介 ?使用GD32H7 SPI接口實(shí)現(xiàn)對
    的頭像 發(fā)表于 06-04 11:42 ?533次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>】<b class='flag-5'>第十</b>一講 SPI-SPI NOR FLASH讀寫<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32H757Z海棠開發(fā)板使用手冊第十 SDIO-SD卡讀寫實(shí)驗(yàn)

    SD卡是一種主要以Nand Flash作為存儲介質(zhì),具有體積小、數(shù)據(jù)傳輸速度快以及支持熱插拔的優(yōu)點(diǎn)。如今,已被廣泛應(yīng)用于數(shù)碼相機(jī)、便攜式移動設(shè)備以及手機(jī)等多種設(shè)備中。SD卡的驅(qū)動一般有SPI接口或SDIO接口,本例程介紹使用GD32F4xx的SDIO接口驅(qū)動SD卡的實(shí)現(xiàn)。
    的頭像 發(fā)表于 06-05 10:35 ?423次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>】<b class='flag-5'>第十</b>二<b class='flag-5'>講</b> SDIO-SD卡讀寫<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32F303紅楓開發(fā)板使用手冊】第二十 SPI-SPI NAND FLASH讀寫實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?SPI通信協(xié)議,參考19.2.1東方紅開發(fā)板使用手冊 ?GD32F303 SPI操作方式,參考19.2.2東方紅
    的頭像 發(fā)表于 06-20 09:50 ?525次閱讀
    【<b class='flag-5'>GD</b>32F303紅楓<b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>】第二十<b class='flag-5'>講</b> SPI-SPI NAND FLASH讀寫<b class='flag-5'>實(shí)驗(yàn)</b>

    GD32H757Z海棠開發(fā)板使用手冊第十四講 TFT-8080口液晶顯示

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: LCD顯示原理 EXMC NOR/SRAM模式時序和8080并口時序 LCD顯示控制
    的頭像 發(fā)表于 09-19 09:21 ?77次閱讀
    【<b class='flag-5'>GD32H757Z</b><b class='flag-5'>海棠</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>使用手冊</b>】<b class='flag-5'>第十</b>四講 <b class='flag-5'>TFT-8080</b>口液晶顯示