久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM32 ILI9325 TFT驅動代碼 多級菜單程序
[打印本頁]
作者:
sr861126
時間:
2022-5-10 15:13
標題:
STM32 ILI9325 TFT驅動代碼 多級菜單程序
ILI9325驅動代碼,可以測試
單片機源程序如下:
/******************** STM32模板 ***************************
* 文 件 名 : main.c
* 作 者 : 偉哥
* 創建日期 : 2012.8.3
* 描 述 : 主文件
* 版 本 : V1.0
* 歷史記錄 : 暫無
***********************************************************/
/*--------------------------- 頭文件包含 --------------------------------------*/
/********************************************************************************
A_Item1 A_Item2
/ \ / \
B_Item1 B_Item2(B1Item) B_Item3 B_Item4(B2Item)
/ \ | / \ |
C_Item1 C_Item2 C_Item3 C_Item4 C_Item5 C_Item6
(C1_Item) (C2_Item) (C3_Item) (C4_Item)
********************************************************************************/
#include "systeminit.h"
int main(void)
{
SystemInit(); //配置系統主頻為72MHz
ILI9325_Init(); //彩屏初始化
ILI9325_Clear(WHITE); //將屏刷為白色
ConfigExtInterrupt(); //配置中斷
ConfigKeyPort(); //配置按鍵端口
DispCrtMenu(A_Item); //顯示初級菜單
while(1)
{
DelayMs(2000); //--演示效果
}
}
復制代碼
#include "menu.h"
/**********************************************
struct MenuItem
{
char MenuDpth; //當前菜單深度
unsigned char *str; //菜單字符串數組
unsigned int x; //字符串顯示的X軸坐標
unsigned int y; //字符串顯示的Y軸坐標
char MenuCount; //當前菜單索引數目
char MenuIdex; //當前菜單索引
void(*Subs)(); //菜單確定時需要執行的功能的函數指針(可以為空)
void(*Back)(); //菜單返回時需要執行的功能的函數指針(可以為空)
// void(*Run)(); //在菜單的某層一直要運行的函數指針
struct MenuItem *ChildrenMenus; //孩子指針(表明選擇該菜單項后,跳轉到哪個子菜單去)
struct MenuItem *ParentMenus; //父指針(表明選擇返回后,跳轉到哪個菜單去)
};
**********************************************/
/*全局變量聲明*/
char ListCount = 1;
char br;
struct MenuItem A_Item[] =
{
{1,"A_Item1",10,20,2,1,Go_MenuB1,NULL,B1_Item,NULL},
{1,"A_Item2",10,60,2,1,Go_MenuB2,NULL,B2_Item,NULL}
};
struct MenuItem B1_Item[] =
{
{2,"B_Item1",10,20,2,1,Go_MenuC1,Go_MenuA,C1_Item,A_Item},
{2,"B_Item2",10,60,2,1,Go_MenuC2,Go_MenuA,C2_Item,A_Item}
};
struct MenuItem B2_Item[] =
{
{2,"B_Item3",10,20,2,1,Go_MenuC3,Go_MenuA,C3_Item,A_Item},
{2,"B_Item4",10,60,2,1,Go_MenuC4,Go_MenuA,C4_Item,A_Item}
};
struct MenuItem C1_Item[] =
{
{3,"C_Item1",10,20,2,1,NULL,Go_MenuB1,NULL,B1_Item},
{3,"c_Item2",10,60,2,1,NULL,Go_MenuB1,NULL,B1_Item}
};
struct MenuItem C2_Item[] =
{
{ 3,"C_Item3",10,20,1,1,NULL,Go_MenuB1,NULL,B1_Item}
};
struct MenuItem C3_Item[] =
{
{ 3,"C_Item4",10,20,2,1,NULL,Go_MenuB2,NULL,B2_Item},
{ 3,"C_Item5",10,60,2,1,NULL,Go_MenuB2,NULL,B2_Item}
};
struct MenuItem C4_Item[] =
{
{ 3,"C_Item6",10,20,1,1,NULL,Go_MenuB2,NULL,B2_Item}
};
void Go_MenuA(void)
{
LCD_DispStr(A_Item[0].str,A_Item[0].x,A_Item[0].y,LARGE,BLACK,WHITE);
LCD_DispStr(A_Item[1].str,A_Item[1].x,A_Item[1].y,LARGE,BLACK,WHITE);
}
void Go_MenuB1(void)
{
LCD_DispStr(B1_Item[0].str,B1_Item[0].x,B1_Item[0].y,LARGE,BLACK,WHITE);
LCD_DispStr(B1_Item[1].str,B1_Item[1].x,B1_Item[1].y,LARGE,BLACK,WHITE);
}
void Go_MenuB2(void)
{
LCD_DispStr(B2_Item[0].str,B2_Item[0].x,B2_Item[0].y,LARGE,BLACK,WHITE);
LCD_DispStr(B2_Item[1].str,B2_Item[1].x,B2_Item[1].y,LARGE,BLACK,WHITE);
}
void Go_MenuC1(void)
{
LCD_DispStr(C1_Item[0].str,C1_Item[0].x,C1_Item[0].y,LARGE,BLACK,WHITE);
LCD_DispStr(C1_Item[1].str,C1_Item[1].x,C1_Item[1].y,LARGE,BLACK,WHITE);
}
void Go_MenuC2(void)
{
LCD_DispStr(C2_Item[0].str,C2_Item[0].x,C2_Item[0].y,LARGE,BLACK,WHITE);
}
void Go_MenuC3(void)
{
LCD_DispStr(C3_Item[0].str,C3_Item[0].x,C3_Item[0].y,LARGE,BLACK,WHITE);
LCD_DispStr(C3_Item[1].str,C3_Item[1].x,C3_Item[1].y,LARGE,BLACK,WHITE);
}
void Go_MenuC4(void)
{
LCD_DispStr(C4_Item[0].str,C4_Item[0].x,C4_Item[0].y,LARGE,BLACK,WHITE);
}
//顯示當前菜單函數
void DispCrtMenu(struct MenuItem* menu) //傳遞的是結構體指針
{
char i;
unsigned int color = WHITE; //color初始化為白色
br = (*menu).MenuCount;
(*menu).MenuIndex = ListCount;
ClearScreen(WHITE); //將屏刷為白色
LCD_Fill_Rect(0, 12 + 32*((*menu).MenuIndex-1), 239, 44+32*((*menu).MenuIndex-1), BLUE);
for(i=0;i<br;i++) //顯示出所有菜單
{
if((*menu).MenuIndex == i+1)
{
color = BLUE; //顏色變為藍色
}
LCD_DispStr((*(menu+i)).str,10,20+32*i,LARGE,BLACK,color);
color = WHITE;
}
}
復制代碼
Keil代碼下載,僅供參考:
多級菜單.7z
(434.05 KB, 下載次數: 90)
2022-5-10 16:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
6874577
時間:
2022-7-20 20:14
感謝樓主,正愁控制不知道怎么去做
作者:
wxh126
時間:
2022-11-4 13:46
感謝樓主,正愁控制不知道怎么去做
作者:
Longan.Wang
時間:
2022-12-6 11:13
還可以,繼續
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产一级一级
|
国产综合精品
|
日韩综合在线
|
91一区二区三区在线观看
|
最近日韩中文字幕
|
色资源在线观看
|
国产精品视频一二三区
|
一级黄色影片在线观看
|
日韩中文字幕
|
国产高清视频在线
|
日韩伦理一区二区三区
|
日操操
|
日韩中文字幕网
|
91精品国产色综合久久
|
欧美1区
|
久久一
|
亚洲综合日韩精品欧美综合区
|
中文字幕一区二区三区不卡
|
久久久久久电影
|
人妖一区
|
av大片
|
日韩a v在线免费观看
|
亚洲成人毛片
|
一区二区三区日韩精品
|
免费在线日韩
|
精品国产乱码久久久
|
国产真实乱对白精彩久久小说
|
91pao对白在线播放
|
奇米超碰在线
|
91免费版在线观看
|
欧美日韩在线一区二区
|
久久久久久九九九九九九
|
国产伦一区二区三区视频
|
国产在线观看网站
|
久久精品日产第一区二区三区
|
一级黄色片美国
|
999视频
|
欧美极品少妇xxxxⅹ免费视频
|
免费观看色
|
久久精品欧美一区二区三区不卡
|
91www在线观看
|