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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32 ILI9325 TFT驅動代碼 多級菜單程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:302293 發表于 2022-5-10 15:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  ILI9325驅動代碼,可以測試

單片機源程序如下:
  1. /******************** STM32模板 ***************************
  2. * 文 件 名                : main.c
  3. * 作        者           : 偉哥
  4. * 創建日期          : 2012.8.3
  5. * 描        述                : 主文件
  6. * 版        本                : V1.0
  7. * 歷史記錄          : 暫無
  8. ***********************************************************/
  9. /*--------------------------- 頭文件包含 --------------------------------------*/
  10. /********************************************************************************

  11.              A_Item1                                           A_Item2
  12.            /         \                                                          /                \
  13.         B_Item1       B_Item2(B1Item)                        B_Item3       B_Item4(B2Item)
  14.         /    \                          |                                   /      \              |
  15. C_Item1 C_Item2          C_Item3                                 C_Item4   C_Item5    C_Item6
  16.   (C1_Item)                 (C2_Item)                               (C3_Item)            (C4_Item)

  17. ********************************************************************************/
  18. #include "systeminit.h"

  19. int main(void)
  20. {
  21.         
  22.         SystemInit();                                        //配置系統主頻為72MHz
  23.         ILI9325_Init();                                        //彩屏初始化
  24.         ILI9325_Clear(WHITE);                         //將屏刷為白色
  25.         ConfigExtInterrupt();                        //配置中斷
  26.         ConfigKeyPort();                                //配置按鍵端口
  27.         
  28.            DispCrtMenu(A_Item);                        //顯示初級菜單

  29.         while(1)                                                   
  30.         {
  31.                 DelayMs(2000);                                //--演示效果
  32.         }
  33. }
復制代碼
  1. #include "menu.h"
  2. /**********************************************
  3. struct MenuItem
  4. {
  5.         char MenuDpth;                                         //當前菜單深度
  6.         unsigned char *str;                                  //菜單字符串數組
  7.         unsigned int x;                                         //字符串顯示的X軸坐標
  8.         unsigned int y;                                         //字符串顯示的Y軸坐標
  9.         char  MenuCount;                                 //當前菜單索引數目
  10.         char  MenuIdex;                                         //當前菜單索引
  11.         void(*Subs)();                                     //菜單確定時需要執行的功能的函數指針(可以為空)
  12.         void(*Back)();                                         //菜單返回時需要執行的功能的函數指針(可以為空)
  13. //        void(*Run)();                                         //在菜單的某層一直要運行的函數指針
  14.         struct MenuItem *ChildrenMenus;  //孩子指針(表明選擇該菜單項后,跳轉到哪個子菜單去)
  15.         struct MenuItem *ParentMenus;    //父指針(表明選擇返回后,跳轉到哪個菜單去)
  16. };
  17. **********************************************/
  18. /*全局變量聲明*/
  19. char ListCount = 1;
  20. char br;

  21. struct MenuItem A_Item[] =
  22. {
  23.         {1,"A_Item1",10,20,2,1,Go_MenuB1,NULL,B1_Item,NULL},
  24.         {1,"A_Item2",10,60,2,1,Go_MenuB2,NULL,B2_Item,NULL}
  25. };

  26. struct MenuItem B1_Item[] =
  27. {
  28.         {2,"B_Item1",10,20,2,1,Go_MenuC1,Go_MenuA,C1_Item,A_Item},
  29.         {2,"B_Item2",10,60,2,1,Go_MenuC2,Go_MenuA,C2_Item,A_Item}
  30. };

  31. struct MenuItem B2_Item[] =
  32. {
  33.         {2,"B_Item3",10,20,2,1,Go_MenuC3,Go_MenuA,C3_Item,A_Item},
  34.         {2,"B_Item4",10,60,2,1,Go_MenuC4,Go_MenuA,C4_Item,A_Item}
  35. };


  36. struct MenuItem C1_Item[] =
  37. {
  38.         {3,"C_Item1",10,20,2,1,NULL,Go_MenuB1,NULL,B1_Item},
  39.         {3,"c_Item2",10,60,2,1,NULL,Go_MenuB1,NULL,B1_Item}

  40. };

  41. struct MenuItem C2_Item[] =
  42. {

  43.         { 3,"C_Item3",10,20,1,1,NULL,Go_MenuB1,NULL,B1_Item}

  44. };

  45. struct MenuItem C3_Item[] =
  46. {
  47.         { 3,"C_Item4",10,20,2,1,NULL,Go_MenuB2,NULL,B2_Item},
  48.         { 3,"C_Item5",10,60,2,1,NULL,Go_MenuB2,NULL,B2_Item}
  49. };

  50. struct MenuItem C4_Item[] =
  51. {
  52.         { 3,"C_Item6",10,20,1,1,NULL,Go_MenuB2,NULL,B2_Item}
  53. };


  54. void Go_MenuA(void)
  55. {
  56.         LCD_DispStr(A_Item[0].str,A_Item[0].x,A_Item[0].y,LARGE,BLACK,WHITE);        
  57.         LCD_DispStr(A_Item[1].str,A_Item[1].x,A_Item[1].y,LARGE,BLACK,WHITE);

  58. }

  59. void Go_MenuB1(void)
  60. {
  61.         LCD_DispStr(B1_Item[0].str,B1_Item[0].x,B1_Item[0].y,LARGE,BLACK,WHITE);        
  62.         LCD_DispStr(B1_Item[1].str,B1_Item[1].x,B1_Item[1].y,LARGE,BLACK,WHITE);
  63. }

  64. void Go_MenuB2(void)
  65. {
  66.         LCD_DispStr(B2_Item[0].str,B2_Item[0].x,B2_Item[0].y,LARGE,BLACK,WHITE);        
  67.         LCD_DispStr(B2_Item[1].str,B2_Item[1].x,B2_Item[1].y,LARGE,BLACK,WHITE);
  68. }

  69. void Go_MenuC1(void)
  70. {
  71.         LCD_DispStr(C1_Item[0].str,C1_Item[0].x,C1_Item[0].y,LARGE,BLACK,WHITE);        
  72.         LCD_DispStr(C1_Item[1].str,C1_Item[1].x,C1_Item[1].y,LARGE,BLACK,WHITE);
  73. }

  74. void Go_MenuC2(void)
  75. {
  76.         
  77.         LCD_DispStr(C2_Item[0].str,C2_Item[0].x,C2_Item[0].y,LARGE,BLACK,WHITE);        

  78. }

  79. void Go_MenuC3(void)
  80. {
  81.         
  82.         LCD_DispStr(C3_Item[0].str,C3_Item[0].x,C3_Item[0].y,LARGE,BLACK,WHITE);        
  83.         LCD_DispStr(C3_Item[1].str,C3_Item[1].x,C3_Item[1].y,LARGE,BLACK,WHITE);

  84. }

  85. void Go_MenuC4(void)
  86. {
  87.         LCD_DispStr(C4_Item[0].str,C4_Item[0].x,C4_Item[0].y,LARGE,BLACK,WHITE);
  88. }


  89. //顯示當前菜單函數
  90. void DispCrtMenu(struct MenuItem* menu)           //傳遞的是結構體指針
  91. {
  92.     char i;
  93.         unsigned int color = WHITE;                                //color初始化為白色

  94.         br = (*menu).MenuCount;

  95.         (*menu).MenuIndex = ListCount;

  96.         ClearScreen(WHITE);                                                //將屏刷為白色

  97.         LCD_Fill_Rect(0, 12 + 32*((*menu).MenuIndex-1), 239, 44+32*((*menu).MenuIndex-1), BLUE);
  98.         
  99.         for(i=0;i<br;i++)                                                //顯示出所有菜單
  100.         {
  101.                 if((*menu).MenuIndex == i+1)
  102.                 {
  103.                         
  104.                         color = BLUE;                                        //顏色變為藍色
  105.                 }

  106.                 LCD_DispStr((*(menu+i)).str,10,20+32*i,LARGE,BLACK,color);
  107.                 color = WHITE;

  108.         }
  109.                
  110. }
復制代碼

Keil代碼下載,僅供參考:
多級菜單.7z (434.05 KB, 下載次數: 90)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:82944 發表于 2022-7-20 20:14 | 只看該作者
感謝樓主,正愁控制不知道怎么去做
回復

使用道具 舉報

板凳
ID:250090 發表于 2022-11-4 13:46 | 只看該作者

感謝樓主,正愁控制不知道怎么去做
回復

使用道具 舉報

地板
ID:77589 發表于 2022-12-6 11:13 | 只看該作者
還可以,繼續
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 婷婷五月色综合 | 国产一区二区三区四 | 久久不射电影网 | 日韩av在线中文字幕 | 色婷婷综合久久久中字幕精品久久 | 中文字幕第二区 | 日本一区二区三区四区 | 亚洲精品一区二区三区中文字幕 | 精品国产乱码久久久久久蜜柚 | 日韩在线不卡视频 | 天堂成人国产精品一区 | 日韩av黄色 | 午夜影院污 | 一级片成人 | 久久久成人动漫 | 国产情侣一区 | 一区二区av | 精品久久九 | 日韩免费一区二区 | 国产二区精品视频 | 黑人粗黑大躁护士 | 日本精品裸体写真集在线观看 | av中文字幕网站 | 污视频免费在线观看 | 毛片在线免费播放 | 国产欧美精品区一区二区三区 | 欧美日韩精品区 | 国产成人精品久久二区二区91 | 国产福利资源在线 | 欧美婷婷 | 超碰成人免费 | 日韩欧美在线免费观看视频 | 久久久一二三区 | 九九久久精品视频 | 超碰97人人人人人蜜桃 | 日本不卡一区二区三区 | 免费观看黄色一级片 | 国产中文 | 超碰操| 宅女噜噜66国产精品观看免费 | 91久久久久|