一个简单的oled菜单程序,采用keil5编程
这是采用stm32做比赛的一段程序,也是一个队友写的,挑出菜单程序贴出来,一般比赛都会要求写个菜单。
void menu_mode(int keyscan) //矩阵键盘
{
OLED_ShowNum(0,0,flag_key,1,12);
switch(keyscan) //确定题目/模式
{
case mode1: {flag_key=1;flag_over=0;} break;
case mode2: {flag_key=2;flag_over=0;} break;
case mode3: flag_key=3; break;
// case mode4: flag_key=4;break;
default: break;
}
OLED_ShowString(0,15,"len:",16); //那次是要求做一个电磁炮,这是调角度
OLED_ShowNum(54,15,length,3,16);
OLED_ShowString(0,30,"ang:",16);
OLED_ShowNum(54,30,horizonal,2,16);
if (flag_key==1)
{
OLED_ShowNum(120,0,numinput,1,12);
if (!flag_over)
{
if(keyscan==chehui) //之前设置好的撤回属于11
{
OLED_Clear();
numinput=0;
}
if((numinput==5)&&(keyscan==queren))
{ //具体内容可以不看,自己改改就好
flag_over=1;
flag_key=0;
chaifen(jianpan);
jiaoput1=horizonal;
jiaoput2=matchlength(length);
// chuandi(jiaoput1,jiaoput2); //传2个角度
runduoji1(jiaoput1+104-30);
runduoji2(jiaoput2+53);
delay_ms(1000);
PDout(3)=1;delay_ms(5000);
PDout(3)=0;delay_ms(1000);PDout(5)=0;delay_ms(1000);PDout(5)=1;
delay_us(10);
}
if((numinput<=4)&&(keyscan<=zero)&&(keyscan!=0))
{
jianpan[numinput]=keyscan;
OLED_ShowNum(numinput*10+30,0,jianpan[numinput],1,12);
numinput++;
}
}
}
if(flag_key==2)
{ USART1_Rx_Task(1);}
if(flag_key==3)
{USART1_Rx_Task(2);}
OLED_Refresh();
}