⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo_interface.c

📁 基于ARM9芯片的一个简单的GPRS测试程序
💻 C
字号:
/*********************************************************************************************
* File:	demo_interface.c
* Author:	embest	
* Desc:	Embest DEMO
* History:	
*********************************************************************************************/
#include "demo.h"
/*------------------------------------------------------------------------------------------*/
/*	 								extern variables						 				    */
/*------------------------------------------------------------------------------------------*/
extern const UINT8T g_ucBitmap1[1][76800];

/*------------------------------------------------------------------------------------------*/
/*	 								global variables					 				    */
/*------------------------------------------------------------------------------------------*/

int f_nPadRow=20;
// 1
int f_nTopicCol=80,f_nTopicRow=20;
// 2
int f_nLabelCol=90,f_nLabelRow=70;
// 3
int f_nItemCol=110,f_nItemRow=70;
// 4
int f_nDescCol=35,f_nDescRow=50;
// 5
int f_nInfoCol=35,f_nInfoRow=120;
// 6 Return coordinate
int f_nRetCol=110,f_nRetRow=210;

char * RetInfo[] =
{
	"Any Key to Exit...",
	"Repress Key-2 to Exit",
	"Embest Info&Tech Co.,Ltd.",
	"Press Key Fun to Exit"
};
struct menu
{
	UINT8T ucLabel;
	UINT8T * ucItem;
//	UINT8T ucKeyValue;
//	int function;
}; 
struct menu mainmenu[2] = 
{
	'1',"实验平台简介",	//'1',(void *)disp_submenu(1),
	'2',"测试实验例程",	//'2',(void *)disp_submenu(2),
};
struct menu submenu[22] =
{
	'1',"基本接口实验",	//'1',(void *)disp_submenu(3),
	'2',"人机接口实验",	//'2',(void *)disp_submenu(4),
	'3',"通信音频接口实验",	//'3',(void *)disp_submenu(5),
	'4',"基础应用实验",	//'4',(void *)disp_submenu(6),
	'5',"高级应用实验",	//'5',(void *)disp_submenu(7),
	
	'1',"存储器实验",	//'1',(void *)disp_submenu(8),
	'2',"I/O接口实验",	//'2',(void *)disp_submenu(9),
	'3',"中断测试实验",	//'3',(void *)disp_submenu(10),
	'4',"串口测试实验",	//'4',(void *)disp_submenu(11),
	'5',"实时时钟实验",	//'5',(void *)disp_submenu(12),
	'6',"数码管实验",	//'6',(void *)disp_submenu(13),
	
	'1',"液晶显示实验",	//'1',(void *)disp_submenu(14),
	'2',"键盘测试实验",	//'2',(void *)disp_submenu(15),
	'3',"触摸屏测试实验",	//'3',(void *)disp_submenu(16),
	
	'1',"IIC串行通信实验",	//'1',(void *)disp_submenu(17),
	'2',"音频接口实验",	//'2',(void *)disp_submenu(18),
	'3',"SPI接口实验",	//'3',(void *)disp_submenu(19),
	
	'1',"A/D转换实验",	//'1',(void *)disp_submenu(20),
	'2',"PWM步进电机控制实验",	//'2',(void *)disp_submenu(21),
	
	'1',"IDE硬盘实验",	//'1',(void *)disp_submenu(22),未添加
	'1',"GPS模块控制实验",	//'2',(void *)disp_submenu(23),
	'2',"GPRS模块控制实验",	//'3',(void *)disp_submenu(24),	
};
/*********************************************************************************************
* name:		interface_index
* func:		this function display the background and add a index number(n) to the interface
* para:		none
* ret:		none
* modify:
* comment:		
********************************************************************************************/
void interface_index(int n)	 
{
	f_nInterface = n;									// select the interface
//  	BitmapView((UINT8T*)(g_ucBitmap1[0])); 	// print the background on lcd
	BitmapViewCstn8Bit((UINT8T*)(g_ucBitmap1[0]));
}
/*********************************************************************************************
* name:		disp_mainmenu
* func:		this function display the mainmenu
* para:		none
* ret:		none
* modify:
* comment:		
********************************************************************************************/
void disp_mainmenu()				//英蓓特演示程序
{
	int i;
	char mainTopic[] = "英蓓特演示程序";
	
	interface_index(0);			                       
	lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,mainTopic);
	for(i = 0; i < 2; i++)
	{
		lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&mainmenu[i].ucLabel);
		lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,mainmenu[i].ucItem);
	}
	lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[2]);	
}
/*********************************************************************************************
* name:		disp_submenu
* func:		this function display the submenu
* para:		none
* ret:		none
* modify:
* comment:		
********************************************************************************************/
void disp_submenu(int n)
{
	int i;
	char boardDesc[] = "Embest EduKit II系统是英蓓特公司自主研发的全功能ARM开发板,支持S3C44B0/S3C2410等多个处理器,资源丰富,提供嵌入式系统开发所需的大部分设备,如串口/以太网/USB/音频/液晶屏/触摸屏/大容量Flash&SDRAM/4x4键盘等。用户不仅可以在该平台完成实验系统提供的例程,还可以参考该平台设计自己的目标系统。";

	interface_index(n);
	switch(f_nInterface)
	{
		case 1:				//实验平台简介
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,mainmenu[0].ucItem);
			lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,boardDesc);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 2:				//测试实验例程
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,mainmenu[1].ucItem);
			for(i = 0; i < 5; i++)
			{
				lcd_disp_str16(f_nLabelCol,f_nLabelRow+f_nPadRow*i,RED,&submenu[i].ucLabel);
				lcd_disp_str16(f_nItemCol,f_nItemRow+f_nPadRow*i,BLUE,submenu[i].ucItem);
			}
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 3:				//基本接口实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[0].ucItem);
			for(i = 0; i < 3; i++)
			{
				lcd_disp_str16(f_nLabelCol-50,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+5].ucLabel);
				lcd_disp_str16(f_nItemCol-50,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+5].ucItem);	 
				lcd_disp_str16(f_nLabelCol+90,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+8].ucLabel);
				lcd_disp_str16(f_nItemCol+90,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+8].ucItem);
			}
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 4:				//人机接口实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[1].ucItem);
			for(i = 0; i < 3; i++)
			{
				lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+11].ucLabel);
				lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+11].ucItem);	 
			}
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 5:				//通信音频接口实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[2].ucItem);
			for(i = 0; i < 2; i++)
			{
				lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+14].ucLabel);
				lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+14].ucItem);
			}
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 6:				//基础应用实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[3].ucItem);
			for(i = 0; i < 2; i++)
			{
				lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+17].ucLabel);
				lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+17].ucItem);
			}
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 7:				//高级应用实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[4].ucItem);
			for(i = 0; i < 2; i++)
			{
				lcd_disp_str16(f_nLabelCol,f_nLabelRow+2*f_nPadRow*i,RED,&submenu[i+20].ucLabel);
				lcd_disp_str16(f_nItemCol,f_nItemRow+2*f_nPadRow*i,BLUE,submenu[i+20].ucItem);	 
			}
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 8:			//存储器实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[5].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 9:				//I/O接口实验
			lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[6].ucItem);
			lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,"请观察系统的四个发光二极管的亮灭");
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 10:				//中断实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[7].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 11:			//UART实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[8].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 12:			//RTC实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[9].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
			
		case 13:			//数码管实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[10].ucItem);
			lcd_disp_str16(f_nDescCol,f_nDescRow+f_nPadRow,BLUE,"本实验在八段数码管上循环显示数字");
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 14:			//液晶显示实验	
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[11].ucItem);
			lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,"本实验先在液晶屏上输出字符和汉字,然后画出四个矩形框,再循环显示图片");
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 15:			//键盘测试实验	
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[12].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[1]);
			break;
		case 16:			//触摸屏测试实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[13].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 17:			//IIC串行通信实验
			lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[14].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 18:			//音频接口实验
			lcd_disp_hz24(f_nTopicCol,f_nTopicRow,RED,submenu[15].ucItem);
			lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,"请通过音频输出口收听播放的音乐");
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 19:			//SPI接口实验
//			lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[16].ucItem);
//			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 20:			//A/D转换实验
			lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[17].ucItem);
			lcd_disp_str16(f_nDescCol,f_nDescRow,BLUE,"旋转AIN2观察屏幕输出");
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 21:			//PWM步进电机控制实验
			lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[18].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[3]);
			break;
		case 22:			//IDE硬盘实验
			lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[19].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 23:			//GPS模块控制实验
			lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[20].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		case 24:			//GPRS模块控制实验
			lcd_disp_str16(f_nTopicCol,f_nTopicRow,RED,submenu[21].ucItem);
			lcd_disp_str16(f_nRetCol,f_nRetRow,RED,RetInfo[0]);
			break;
		default:break;	
	}
}	



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -