欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2583|回復: 0
打印 上一主題 下一主題
收起左側

關于顯控觸摸屏的應用

[復制鏈接]
跳轉到指定樓層
樓主
ID:503806 發表于 2019-4-3 09:13 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式

//5個觸控點的顏色(電容觸摸屏用)            
const u16 POINT_COLOR_TBL[OTT_MAX_TOUCH]={RED,GREEN,BLUE,BROWN,GRED};  
//電阻觸摸屏測試函數
void rtp_test(void)
{
u8 key;
u8 i=0;   
while(1)
{
   key=KEY_Scan(0);
  tp_dev.scan(0);   
  if(tp_dev.sta&TP_PRES_DOWN)   //觸摸屏被按下
  {
    if(tp_dev.x[0]<lcddev.width&&tp_dev.y[0]<lcddev.height)
   {
    if(tp_dev.x[0]>(lcddev.width-24)&&tp_dev.y[0]<16)Load_Drow_Dialog();//清除
    else TP_Draw_Big_Point(tp_dev.x[0],tp_dev.y[0],RED);  //畫圖         
   }
  }else delay_ms(10); //沒有按鍵按下的時候      
  if(key==KEY0_PRES) //KEY0按下,則執行校準程序
  {
   LCD_Clear(WHITE); //清屏
      TP_Adjust();    //屏幕校準
   TP_Save_Adjdata();  
   Load_Drow_Dialog();
  }
  i++;
  if(i%20==0)LED0=!LED0;
}
}
//電容觸摸屏測試函數
void ctp_test(void)
{
u8 t=0;
u8 i=0;        
  u16 lastpos[5][2];  //最后一次的數據
while(1)
{
  tp_dev.scan(0);
  for(t=0;t<OTT_MAX_TOUCH;t++)
  {
   if((tp_dev.sta)&(1<<t))
   {
    if(tp_dev.x[t]<lcddev.width&&tp_dev.y[t]<lcddev.height)
    {
     if(lastpos[t][0]==0XFFFF)
     {
      lastpos[t][0] = tp_dev.x[t];
      lastpos[t][1] = tp_dev.y[t];
     }
     lcd_draw_bline(lastpos[t][0],lastpos[t][1],tp_dev.x[t],tp_dev.y[t],2,POINT_COLOR_TBL[t]);//畫線
     lastpos[t][0]=tp_dev.x[t];
     lastpos[t][1]=tp_dev.y[t];
     if(tp_dev.x[t]>(lcddev.width-24)&&tp_dev.y[t]<20)
     {
      Load_Drow_Dialog();//清除
     }
    }
   }else lastpos[t][0]=0XFFFF;
  }
  
  delay_ms(5);i++;
  if(i%20==0)LED0=!LED0;
}
}

int main(void)
{

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
delay_init(168);  //初始化延時函數
uart_init(115200);  //初始化串口波特率為115200

LED_Init();     //初始化LED
  LCD_Init();     //LCD初始化
KEY_Init();     //按鍵初始化  
tp_dev.init();    //觸摸屏初始化
  POINT_COLOR=RED;//設置字體為紅色
LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");
LCD_ShowString(30,70,200,16,16,"TOUCH TEST");
LCD_ShowString(30,90,200,16,16,"nihao");
LCD_ShowString(30,110,200,16,16,"2014/5/7");
    if(tp_dev.touchtype!=0XFF)LCD_ShowString(30,130,200,16,16,"Press KEY0 to Adjust");//電阻屏才顯示
delay_ms(1500);
  Load_Drow_Dialog();   

if(tp_dev.touchtype&0X80)ctp_test();//電容屏測試
else rtp_test();      //電阻屏測試
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表