序
由于电赛的任务调度需求,我写了这个模式选择菜单,测试基于正点原子的战舰V3开发板,3.5寸电阻屏,对正点原子LCD封装库进行扩展,可自选1到12模式数量,自排版并在触屏时输出模式序号。
LCD_Menu.c
#include "LCD_Menu.h"
#include "key.h"
#include "led.h"
//给模式选项画一个框
//width,height 框左上角起始位置
//H,L 设置框的高,宽
void MODE_Draw_Frame(unsigned int width,unsigned int height,unsigned int H,unsigned int L,unsigned int color)
{
POINT_COLOR=color;
LCD_DrawLine(width, height, width + L, height);
LCD_DrawLine(width, height, width , height + H);
LCD_DrawLine(width, height + H, width + L, height + H);
LCD_DrawLine(width + L, height + H, width + L, height);
}
void MODE_Draw_Name(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p,u8 num)
{
u8 x0=x;
width+=x;
height+=y;
while((*p<='~')&&(*p>=' '))//判断是不是非法字符
{
if(x>=width){x=x0;y+=size;}
if(y>=height)break;//退出
LCD_ShowChar(x,y,*p,size,0);
x+=size/2;
p++;
}
if(num<10)//用于显示模式