@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* mymain.c
|
||||
*
|
||||
* Created on: 2022年4月15日
|
||||
* Created on: 2022年4月15日
|
||||
* Author: wuwen
|
||||
*/
|
||||
#include "mymain.h"
|
||||
@@ -24,8 +24,8 @@ int config_oled_luminance=100;
|
||||
|
||||
|
||||
|
||||
button B1,TACKA,TACKB;//创建一个按钮
|
||||
encoder E1;//创建一个编码器
|
||||
button B1,TACKA,TACKB;//创建一个按钮
|
||||
encoder E1;//创建一个编码器
|
||||
int mode=0;
|
||||
uint32_t run_tick=0,jump_tick=0;
|
||||
|
||||
@@ -43,13 +43,13 @@ int test_code=0;
|
||||
word turnon=
|
||||
{
|
||||
"ON",
|
||||
"开"
|
||||
"开"
|
||||
};
|
||||
|
||||
word turnoff=
|
||||
{
|
||||
"OF",
|
||||
"关"
|
||||
"关"
|
||||
};
|
||||
|
||||
const char * GET_WORD(word*word,char lan)
|
||||
@@ -175,32 +175,17 @@ void main_gui()
|
||||
|
||||
}
|
||||
|
||||
void main_menu()
|
||||
int main_menu()
|
||||
{
|
||||
if(HAL_GetTick()>jump_tick){mode=1;}
|
||||
static menu menu_main=
|
||||
{
|
||||
0,0,
|
||||
"Main GUI\nInput mode\nBuzzer\nDisplay\nLanguage\nAbout",
|
||||
"主页\n输入模式\n蜂鸣器\n显示\n语言\n关于",5,
|
||||
"主页\n输入模式\n蜂鸣器\n显示\n语言\n关于",5,
|
||||
NULL
|
||||
};
|
||||
switch(SHOW_MENU(&menu_main,encode_c,B1.code,sys_lan,1))
|
||||
{
|
||||
case 0:
|
||||
//jump to main GUI
|
||||
mode=1;
|
||||
break;
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
//jump to buzzer setting
|
||||
mode=3;
|
||||
break;
|
||||
case 3:
|
||||
mode=4;
|
||||
break;
|
||||
}
|
||||
if(HAL_GetTick()>jump_tick){mode=1;}
|
||||
return SHOW_MENU(&menu_main,encode_c,B1.code,sys_lan,1);
|
||||
|
||||
}
|
||||
|
||||
@@ -210,7 +195,7 @@ void buzzer_settings()
|
||||
{
|
||||
0,0,
|
||||
"Back\nClick\nPress\nSele change",
|
||||
"返回\n点击\n长按\n选择切换",3,NULL
|
||||
"返回\n点击\n长按\n选择切换",3,NULL
|
||||
};
|
||||
|
||||
char str[32];
|
||||
@@ -265,7 +250,7 @@ void display_settings()
|
||||
{
|
||||
0,0,
|
||||
"Back\nluminance\nSpin",
|
||||
"返回\n亮度\n旋转",2,NULL
|
||||
"返回\n亮度\n旋转",2,NULL
|
||||
};
|
||||
static char config_oled_luminance_sele=0;
|
||||
char str[32];
|
||||
@@ -308,17 +293,57 @@ void display_settings()
|
||||
if(HAL_GetTick()>jump_tick){config_oled_luminance_sele=0;mode=2;}
|
||||
}
|
||||
|
||||
void set_language()
|
||||
{
|
||||
static menu display_setting=
|
||||
{
|
||||
0,0,
|
||||
"Back\nEnglish\n中文",
|
||||
"返回\nEnglish\n中文",2,NULL
|
||||
};
|
||||
char str[32];
|
||||
display_setting.r_sw_list=&str;
|
||||
|
||||
|
||||
if(sys_lan==0)
|
||||
{
|
||||
sprintf(str,"../\n<-");
|
||||
}else
|
||||
{
|
||||
sprintf(str,"../\n\n<-");
|
||||
}
|
||||
|
||||
switch(SHOW_MENU(&display_setting,encode_c,B1.code,sys_lan,0))
|
||||
{
|
||||
case 0:
|
||||
mode=2;
|
||||
break;
|
||||
case 1:
|
||||
sys_lan=0;
|
||||
break;
|
||||
case 2:
|
||||
sys_lan=1;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if(HAL_GetTick()>jump_tick){mode=2;}
|
||||
}
|
||||
|
||||
void mymain()
|
||||
{
|
||||
int temp;
|
||||
PWR_EN(1);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);//启动n通道的pwm
|
||||
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);//启动n通道的pwm
|
||||
HAL_TIM_Base_Start_IT(&htim3);
|
||||
OLED_Init();//屏幕初始化
|
||||
OLED_Init();//屏幕初始化
|
||||
OLED_Setting_luminance(config_oled_luminance);
|
||||
|
||||
BUZZER_PLAY_INIT();
|
||||
@@ -327,14 +352,14 @@ void mymain()
|
||||
BUZZER_PLAY_NOTES(1000,1000,50);
|
||||
BUZZER_PLAY_NOTES(0,1000,50);
|
||||
|
||||
B1.config_longtimes=1;//启用B1按钮的长按检测
|
||||
B1.config_longtimes=1;//启用B1按钮的长按检测
|
||||
|
||||
while(1)
|
||||
{
|
||||
GEI_BUTTON_CODE(&B1,en_c());//循环更新按钮
|
||||
encode_c=GET_ENCODE(&E1); //更新编码器
|
||||
GEI_BUTTON_CODE(&B1,en_c());//循环更新按钮
|
||||
encode_c=GET_ENCODE(&E1); //更新编码器
|
||||
|
||||
//蜂鸣器控制
|
||||
//蜂鸣器控制
|
||||
if(B1.code>0)
|
||||
{
|
||||
if(B1.code<255)//1-254
|
||||
@@ -354,20 +379,35 @@ void mymain()
|
||||
switch(mode)
|
||||
{
|
||||
case 0:
|
||||
//启动跳转模式
|
||||
//用于读取系统配置后跳转到其他程序
|
||||
//OLED_Str_list(0,0,8,"123\n456\n789",1,2,1);
|
||||
//启动跳转模式
|
||||
//用于读取系统配置后跳转到其他程序
|
||||
//OLED_Str_list(0,0,16,"123中88文9\n456错\n你好",0,0,1);
|
||||
mode=1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
//主界面
|
||||
//主界面
|
||||
main_gui();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
//菜单界面
|
||||
main_menu();
|
||||
//菜单界面
|
||||
temp=main_menu();
|
||||
switch(temp)
|
||||
{
|
||||
case 0:
|
||||
mode=1;
|
||||
break;
|
||||
case 2:
|
||||
mode=3;
|
||||
break;
|
||||
case 3:
|
||||
mode=4;
|
||||
break;
|
||||
case 4:
|
||||
mode=5;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
@@ -378,13 +418,17 @@ void mymain()
|
||||
case 4:
|
||||
display_settings();
|
||||
break;
|
||||
|
||||
case 5:
|
||||
set_language();
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
mo_server();
|
||||
BUZZER_PLAY_SERVER();
|
||||
OLED_Cache_to_hardware();//刷新屏幕
|
||||
OLED_Cache_to_hardware();//刷新屏幕
|
||||
|
||||
if(HAL_GetTick()>run_tick)
|
||||
{
|
||||
@@ -397,20 +441,20 @@ void mymain()
|
||||
}
|
||||
}
|
||||
|
||||
//外部中断回调
|
||||
//外部中断回调
|
||||
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
||||
{
|
||||
|
||||
switch (GPIO_Pin)//中断线监测
|
||||
switch (GPIO_Pin)//中断线监测
|
||||
{
|
||||
case en_a_Pin: //编码器A脚
|
||||
switch(HAL_GPIO_ReadPin(en_a_GPIO_Port,en_a_Pin))//监测编码器A脚
|
||||
case en_a_Pin: //编码器A脚
|
||||
switch(HAL_GPIO_ReadPin(en_a_GPIO_Port,en_a_Pin))//监测编码器A脚
|
||||
{
|
||||
case 1://通过监测B脚的状态识别正反转
|
||||
case 1://通过监测B脚的状态识别正反转
|
||||
if(HAL_GPIO_ReadPin(en_b_GPIO_Port,en_b_Pin))
|
||||
{
|
||||
E1.code+=1;
|
||||
E1.move_flag=1;//发生旋转的标记
|
||||
E1.move_flag=1;//发生旋转的标记
|
||||
jump_tick=HAL_GetTick()+10000;
|
||||
}
|
||||
break;
|
||||
@@ -418,7 +462,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
||||
if(HAL_GPIO_ReadPin(en_b_GPIO_Port,en_b_Pin))
|
||||
{
|
||||
E1.code-=1;
|
||||
E1.move_flag=1;//发生旋转的标记
|
||||
E1.move_flag=1;//发生旋转的标记
|
||||
jump_tick=HAL_GetTick()+10000;
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user