📄 main.c
字号:
#include "stm32f10x_lib.h"
#include"COMM.H"
#include "delay.h"
#include "sys.h"
#include "usart.h"
//显示系统信息
void Sys_Info(void)
{
u32 sd_size=0;
sd_size=SD_GetCapacity();
Load_StratUp_Gui();
POINT_COLOR=BLACK;
Show_Str(4,68," 处理器 :STM32F103RBT6",0x01);
Show_Str(4,100,"系统内存:20KB",0x01);
Show_Str(4,132,"系统闪存:128KB",0x01);
Show_Str(4,164,"软件版本:V1.0",0x01);
Show_Str(4,196,"SD卡类型:",0x01);
Show_Str(4,228,"SD卡容量: Mb",0x01);
TFT_ShowNum(76,228,sd_size>>20,4,16,0x01);
//printf("sd_size:%d\n",sd_size);
if(FAT32_Enable)Show_Str(4,260,"文件系统:FAT32",0x01);
else Show_Str(4,260,"文件系统:FAT16",0x01);
Show_Str(4,292," 设计者 :刘军",0x01);
switch(SD_Type)
{
case 0:Show_Str(76,196,"MMC卡",0x01);;break;
case 1:Show_Str(76,196,"V1类SD卡",0x01);;break;
case 2:Show_Str(76,196,"V2类SD卡",0x01);;break;
case 4:Show_Str(76,196,"超高速SD卡",0x01);;break;
}
while(NPEN==0);//等待按键退出
}
//主函数
int main(void)
{
u32 index=0;
u8 t;
////////////////////////////////////////////////////////////////////////////
//硬件初始化
Stm32_Clock_Init();//时钟配置
delay_init(72); //延时配置
uart_init(); //初始化串口
TFT_Init(); //初始化TFTLCD
init1820(); //初始化温度传感器
Vs1003_Init();//初始化VS1003的IO口
Mp3Reset(); //复位VS1003
IIC_Init(); //IIC总线初始化
rtc_init(); //初始化实时时钟
touch_init(); //触摸屏初始化
Alarm_Init(); //闹钟初始化
SD_Init(); //初始化SD卡
RGBLED_Init();//RGB彩灯初始化
////////////////////////////////////////////////////////////////////////////
//初始化文件系统
while(FAT_Init())
{
TFT_ShowString(56,120,"FAT Init Failed!");//SD FAIL
TFT_ShowString(56,136,"Plesase Check...");//等待插入SD卡
delay_ms(100);
SD_Init();
}
//得到系统文件失败
while(SysInfoGet(0x00)==0)
{
TFT_CLEAR(WHITE);//清屏
TFT_ShowString(50,120,"SYSTEM File LOST!");//SD FAIL
TFT_ShowString(56,136,"Plesase Check...");//等待插入SD卡
delay_ms(500);
while(FAT_Init())
{
TFT_ShowString(50,120," SD Card LOST! ");//SD FAIL
TFT_ShowString(56,136,"Plesase Check...");//SD FAIL
SD_Init();//重新初始化文件系统
delay_ms(500);
}
}
Sys_Info(); //显示系统信息
////////////////////////////////////////////////////////////////////////////
//初始化音效
INITDSP=FM24C16_ReadOneByte(30);//调用DSP值
if(INITDSP>4)//未初始化,则初始化
{
INITDSP=0;
for(t=0;t<31;t++)FM24C16_WriteOneByte(t,0);//全部清空
}else read_dsp(); //已经初始化过了 读取DSP效果
////////////////////////////////////////////////////////////////////////////
//初始化系统结束,主循环开始
TFT_CLEAR(WHITE);//清屏
while (1)
{
Load_Sys_ICO();//加载系统主界面图标
index=0;
Select_Menu(0,0,1);//默认选中第一个
Pen_Point.Key_Sta=Key_Up;//释放显示期间的触发
t=0;
while(1) //不断显示
{
if((Pen_Point.Key_Sta==Key_Down||NPEN)&&Pen_Point.Key_LSta)t=Touch_To_Num(0);//得到按键值
if(PEN)//按键松开了,状态改变(状态机)
{
Pen_Point.Key_LSta=1;
Pen_Point.Key_Sta=Key_Up;
}
if(t)
{
Pen_Point.Key_LSta=0;
Select_Menu(0,t-1,1);//选中这个
if(index!=t-1)Select_Menu(0,index,0);//取消上一次的
else //此次选择和上次一样,进入该功能
{
switch(index)
{
case 0://音乐模式
TFT_CLEAR(WHITE);//清屏
Mus_Viewer();//音乐浏览
Load_Sys_ICO();//重新加载系统菜单
Select_Menu(0,index,1);//选中上次选中的
break;
case 1://浏览图片
TFT_CLEAR(WHITE);//清屏
Pic_Viewer();//图片浏览
Load_Sys_ICO();//重新加载系统菜单
Select_Menu(0,index,1);//选中上次选中的
break;
case 4: //时间模式
Time_Viewer();
Load_Sys_ICO();//重新加载系统菜单
Select_Menu(0,index,1);//选中上次选中的
break;
case 5: //设置模式
Set_Viewer();
Load_Sys_ICO();//重新加载系统菜单
Select_Menu(0,index,1);//选中上次选中的
break;
case 6://浏览TXT文件
TFT_CLEAR(WHITE);//清屏
Txt_Viewer();
Load_Sys_ICO();//重新加载系统菜单
Select_Menu(0,index,1);//选中上次选中的
break;
case 8:// 重新启动FAT
RGBLED_Play();
Load_Sys_ICO();//重新加载系统菜单
Select_Menu(0,index,1);//选中上次选中的
break;
//goto RESTART;
case 7://收音机模式
Radio_Play();
Load_Sys_ICO();//重新加载系统菜单
Select_Menu(0,index,1);//选中上次选中的
break;
case 2://游戏模式
Game_Play();
Load_Sys_ICO();//重新加载系统菜单
Select_Menu(0,index,1);//选中上次选中的
break;
case 3://闹钟模式
Alarm_Viewer();
Load_Sys_ICO();//重新加载系统菜单
Select_Menu(0,index,1);//选中上次选中的
break;
}
}
index=t-1;
t=0;
}
delay_ms(10);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -