久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于STM32103FZET6的TFT漢字及觸摸顯示例程

[復制鏈接]
跳轉到指定樓層
樓主
本例程使用的是2.8寸的TFT屏,本例程是正點原子例程的精簡版,刪去其他TFT屏驅動,刪去SD卡的相關文件、刪去文件管理的相關文件,如果開發板W25內沒有字庫,可以先下載正點原子例程(正點原子例程是  如果檢測不到w25內有字庫的話,會檢測SD卡內的字庫,然后將SD卡內的字庫寫入W25),本例程默認W25里有字庫,上電后直接去W25中尋找字庫,如果沒有找到則無法顯示。


單片機源程序如下:
  1. #include "sys.h"
  2. #include "usart.h"               
  3. #include "delay.h"       
  4. #include "lcd.h"
  5. #include "touch.h"  
  6. #include "w25qxx.h"  
  7. #include "text.h"         

  8. //清空屏幕并在右上角顯示"RST"
  9. void Load_Drow_Dialog(void)
  10. {
  11.         LCD_Clear(WHITE);        //清屏   
  12.         POINT_COLOR=BLUE;        //設置字體為藍色
  13.         LCD_ShowString(lcddev.width-24,0,200,16,16,"RST");//顯示清屏區域
  14.           POINT_COLOR=RED;        //設置畫筆藍色
  15. }

  16. //電阻觸摸屏測試函數
  17. void rtp_test(void)
  18. {
  19.         while(1)
  20.         {
  21.                 tp_dev.scan(0);                  
  22.                 if(tp_dev.sta&TP_PRES_DOWN)                        //觸摸屏被按下
  23.                 {       
  24.                          if(tp_dev.x[0]<lcddev.width&&tp_dev.y[0]<lcddev.height)
  25.                         {       
  26.                                 if(tp_dev.x[0]>(lcddev.width-24)&&tp_dev.y[0]<16)Load_Drow_Dialog();//清除
  27.                                 else TP_Draw_Big_Point(tp_dev.x[0],tp_dev.y[0],RED);                //畫圖                                    
  28.                         }
  29.         }
  30.         }
  31. }

  32. int main(void)
  33. {                                 
  34.         u8 fontx[2];//gbk碼
  35.         u32 fontcnt;
  36.         u8 i,j;       
  37.         Stm32_Clock_Init(9);        //系統時鐘設置
  38.         delay_init(72);                          //延時初始化
  39.         uart_init(72,115200);         //串口初始化為115200
  40.         LCD_Init();
  41.         W25QXX_Init();                                //初始化W25Q128 和SPI2
  42.         POINT_COLOR=RED;
  43.         tp_dev.init();                        //觸摸屏初始化
  44.         while(font_init())                         //檢查字庫
  45.         {        
  46.                 LCD_Clear(WHITE);                           //清屏
  47.                 POINT_COLOR=RED;                        //設置字體為紅色                                
  48.                 LCD_ShowString(30,50,200,16,16,"WarShip STM32");                                                                                                                     
  49.                 LCD_ShowString(30,90,200,16,16,"Font Updating...");          
  50.                 LCD_ShowString(30,110,200,16,16,"Font Update Success!   ");
  51.                 delay_ms(1500);       
  52.                 LCD_Clear(WHITE);//清屏               
  53.         }  
  54.         POINT_COLOR=RED;      
  55.         Show_Str(30,50,200,16,"戰艦STM32F103開發板",16,0);                                             
  56.         Show_Str(30,70,200,16,"GBK字庫測試程序",16,0);                                             
  57.         Show_Str(30,90,200,16,"正點原子@ALIENTEK",16,0);                                             
  58.         Show_Str(30,110,200,16,"2015年1月20日",16,0);
  59.         Show_Str(30,130,200,16,"按KEY0,更新字庫",16,0);
  60.         POINT_COLOR=BLUE;  
  61.         Show_Str(30,150,200,16,"內碼高字節:",16,0);                                             
  62.         Show_Str(30,170,200,16,"內碼低字節:",16,0);                                             
  63.         Show_Str(30,190,200,16,"漢字計數器:",16,0);

  64.         Show_Str(30,220,200,24,"對應漢字為:",24,0);
  65.         Show_Str(30,244,200,16,"對應漢字(16*16)為:",16,0);                         
  66.         Show_Str(30,260,200,12,"對應漢字(12*12)為:",12,0);       
  67.                 while(1)
  68.         {
  69.                 fontcnt=0;
  70.                 for(i=0x81;i<0xff;i++)
  71.                 {               
  72.                         fontx[0]=i;
  73.                         LCD_ShowNum(118,150,i,3,16);                //顯示內碼高字節   
  74.                         for(j=0x40;j<0xfe;j++)
  75.                         {
  76.                                 if(j==0x7f)continue;
  77.                                 fontcnt++;
  78.                                 LCD_ShowNum(118,170,j,3,16);        //顯示內碼低字節         
  79.                                 LCD_ShowNum(118,190,fontcnt,5,16);//漢字計數顯示         
  80.                                  fontx[1]=j;
  81.                                 Show_Font(30+132,220,fontx,24,0);          
  82.                                 Show_Font(30+144,244,fontx,16,0);                                            
  83.                                 Show_Font(30+108,260,fontx,12,0);                                            
  84.                         }   
  85.                 }       
  86.         }
  87. }



  88. //                printf("t:%d\r\n",t);


復制代碼


  1. #include "sys.h"
  2. #include "usart.h"               
  3. #include "delay.h"       
  4. #include "lcd.h"
  5. #include "touch.h"  

  6. //清空屏幕并在右上角顯示"RST"
  7. void Load_Drow_Dialog(void)
  8. {
  9.         LCD_Clear(WHITE);        //清屏   
  10.         POINT_COLOR=BLUE;        //設置字體為藍色
  11.         LCD_ShowString(lcddev.width-24,0,200,16,16,"RST");//顯示清屏區域
  12.           POINT_COLOR=RED;        //設置畫筆藍色
  13. }

  14. //電阻觸摸屏測試函數
  15. void rtp_test(void)
  16. {
  17.         while(1)
  18.         {
  19.                 tp_dev.scan(0);                  
  20.                 if(tp_dev.sta&TP_PRES_DOWN)                        //觸摸屏被按下
  21.                 {       
  22.                          if(tp_dev.x[0]<lcddev.width&&tp_dev.y[0]<lcddev.height)
  23.                         {       
  24.                                 if(tp_dev.x[0]>(lcddev.width-24)&&tp_dev.y[0]<16)Load_Drow_Dialog();//清除
  25.                                 else TP_Draw_Big_Point(tp_dev.x[0],tp_dev.y[0],RED);                //畫圖                                    
  26.                         }
  27.         }
  28.         }
  29. }
  30. int main(void)
  31. {                                 

  32.         Stm32_Clock_Init(9);        //系統時鐘設置
  33.         delay_init(72);                          //延時初始化
  34.         uart_init(72,115200);         //串口初始化為115200
  35.         LCD_Init();
  36.         POINT_COLOR=RED;
  37.         tp_dev.init();                        //觸摸屏初始化
  38.           while(1)
  39.         {
  40.         POINT_COLOR=RED;//設置字體為紅色
  41.         LCD_ShowString(30,50,200,16,16,"WarShip STM32");       
  42.         LCD_ShowString(30,70,200,16,16,"TOUCH TEST");       
  43.         LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  44.         LCD_ShowString(30,110,200,16,16,"2015/1/15");
  45.            if(tp_dev.touchtype!=0XFF)LCD_ShowString(30,130,200,16,16,"Press KEY0 to Adjust");//電阻屏才顯示
  46.         delay_ms(1500);
  47.                 while(1)
  48.                 {
  49.         Load_Drow_Dialog();          
  50.         rtp_test();                                                 //電阻屏測試
  51.                 }
  52.         }         
  53. }



  54. //                printf("t:%d\r\n",t);


復制代碼

所有資料51hei提供下載:
ZE_TFT觸摸顯示.rar (282.99 KB, 下載次數: 179)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:630916 發表于 2020-2-3 14:23 | 只看該作者
謝謝,
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精点视频 | 国产一区二区a | 亚洲视频一区二区三区 | 日本不卡一区 | 精品欧美一区二区在线观看视频 | 久久久久国产一区二区 | 欧美一区二区免费视频 | 精品一区国产 | 欧美精品久久久久 | 久久久亚洲一区 | 麻豆一区二区三区精品视频 | 国产农村妇女精品一区 | 99精品欧美一区二区三区综合在线 | 免费成人av | 久久久久久免费精品一区二区三区 | 激情六月丁香婷婷 | 黄色三级在线播放 | 日韩www| 免费的日批视频 | 精品欧美一区免费观看α√ | 亚洲精品高清视频在线观看 | 日本久久精品视频 | 久久一区二区免费视频 | 羞羞网站在线观看 | 少妇精品久久久久久久久久 | 91精品无人区卡一卡二卡三 | 男人天堂久久 | 青青草视频免费观看 | 日韩欧美一级精品久久 | 国产一级黄色网 | 日本精品一区二区三区视频 | 国产人免费人成免费视频 | 台湾a级理论片在线观看 | 亚洲欧美一区二区三区1000 | 亚洲 欧美 日韩 在线 | 欧美二三区 | 美女逼网站 | 青娱乐av | 一区二区视屏 | 精品免费视频 | 亚洲一区二区综合 |