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

📄 comm.h

📁 多功能MP3代码
💻 H
📖 第 1 页 / 共 2 页
字号:
//共用头文件
#ifndef __COMM_H__
#define __COMM_H__
#include <stm32f10x_lib.h>	
#include <math.h>
#include <stdlib.h> //abs函数
#include <stdio.h>
#include <string.h>
////////////////////////////////////////////////////
//TFTLCD里面颜色的定义		
#define RED	  0XF800
#define GREEN 0X07E0
#define BLUE  0X001F  
#define BRED  0XF81F
#define GRED  0XFFE0
#define GBLUE 0X07FF
#define WHITE 0XFFFF //白色
#define BLACK 0X0000 //黑色
#define BROWN 0XBC40 //棕色
#define BRRED 0XFC07 //棕红色
#define GRAY  0X8430 //灰色
#define LGRAY 0XC618 //浅灰色

//频谱分段颜色
#define BOTC  0X07FF
#define MIDC  0X07FC
#define TOPC  0X069C
//MP3界面背景色
#define MP3COLOR1 BLACK
#define MP3COLOR2 0X6802
#define MP3COLOR3 0X8AA0
#define MP3COLOR4 0X500E
#define MP3COLOR5 0X380E
#define MP3COLOR6 0X000B
#define MP3COLOR7 BLACK	 

#define LRCCOLOR  GBLUE//歌词的颜色 
//功能选择背景色
#define Bro_TOP 0X038A
#define Bro_MID 0XEFC0
#define Bro_BTM 0X81BF
//////////////////////////////////////////////////////
//通用宏定义声明
typedef char  CHAR;
typedef short SHORT;
typedef long  LONG;
	    	    			   
typedef unsigned long   DWORD;
typedef int             BOOL;
typedef u8              BYTE;
typedef unsigned short  WORD;
  
#define FALSE 0
#define TRUE  1 
////////////////////////////////////////////////////// 					 
#define MAX_LONG_NAME_SIZE 80	/* 26*n+2   n=3 */	
//返回值:对应的类型   bit0,mp3;bit1,wma;bit2,wav,bit3,mid;bit4,lrc;
//                    bit5,txt;bit6,jpg;bit7,jpeg;bit8,bmp;bit9,file;bit10,fon;   
//文件信息结构体
#define T_MP3  1<<0
#define T_WMA  1<<1
#define T_WAV  1<<2
#define T_MID  1<<3	

#define T_LRC  1<<4
#define T_TXT  1<<5
#define T_C    1<<6
#define T_H    1<<7

#define T_JPG  1<<8
#define T_JPEG 1<<9
#define T_BMP  1<<10
#define T_FILE 1<<11
#define T_FON  1<<12
//文件信息结构体
//包括文件名,文件类型,文件属性,起始簇和偏移量
typedef struct  
{
	BYTE F_ShortName[8];//保存八个字节的短文件名
	BYTE F_Name[MAX_LONG_NAME_SIZE];
	unsigned long F_StartCluster;			//< file starting cluster for last file accessed
	unsigned long F_Size;					//< file size for last file accessed
	u8  F_Attr;				            	//< file attr for last file accessed
	u16	F_Type;
	//unsigned short CreateTime;			//< file creation time for last file accessed
	//unsigned short CreateDate;			//< file creation date for last file accessed
	unsigned long F_CurClust;				//当前簇号
	unsigned int  F_Offset;				    //在簇号里面的扇区偏移
}FileInfoStruct;
////////////////////////////////////////////////////// 	
//笔杆结构体
typedef struct 
{
	u16 X0;//原始坐标
	u16 Y0;
	u16 X; //最终/暂存坐标
	u16 Y;						   	    
	u8  Key_Sta;//笔的状态
	u8  Key_LSta;//上一次笔的状态
//触摸屏校准参数
	float xfac;
	float yfac;
	short xoff;
	short yoff;
}Pen_Holder;
extern Pen_Holder Pen_Point;
////////////////////////////////////////////////////// 			    
//时间结构体
typedef struct 
{
	u8 hour;
	u8 min;
	u8 sec;			
	//公历日月年周
	u16 w_year;
	u8  w_month;
	u8  w_date;
	u8  week;		 
}tm; 
extern tm timer;

//按键状态	 
#define Key_Down 0x01
#define Key_Up   0x00 
//触摸屏按键处理
#define CLICK_POINT 0X01   
#define MOVE_LEFT   0X10
#define MOVE_RIGHT  0X20
#define MOVE_UP     0X40
#define MOVE_DOWN   0X80

#define	KEY_NEXT 0X01
#define KEY_PREV 0X02
#define KEY_FUNC 0X03
		
//外部笔
#define PEN  GPIOA->IDR&(1<<0) //PA0  
#define NPEN !(0x01&PEN)     //!PEN		   
/////////////////////////////////////////////////////////////////
void delay_us(u32 Nus);//微秒延时
void delay_ms(u16 nms);//ms延时
/////////////////////////////////////////////////////////////////
//TFTLCD部分外要调用的函数
extern u16 Screen_Data[756];//42*18大小的GRAM数据
unsigned int TFT_RD_GRAM(u8 x,u16 y);//从指定地址读出GRAM数据

extern u16  POINT_COLOR;//默认红色    
extern u16  BACK_COLOR; //背景颜色.默认为白色

void READ_GRAM(u8 x,u16 y);   //从指定地址开始读取42*18大小的的GRAM数据
void RECOVER_GRAM(u8 x,u16 y);//从指定地址开始写入42*18大小的的GRAM数据 

void TFT_Init(void);      //初始化TFTLCD
void TFT_CLEAR(u16 color);//TFT清屏函数		    
void TFT_Fill(u8 xsta,u16 ysta,u8 xend,u16 yend,u16 color);//在指定区域填充指定颜色

void TFT_DrawPoint(u8 x,u16 y);//画一个点
void TFT_ShowChar(u8 x,u16 y,u8 num,u8 size,u8 mode);//在指定位置显示一个字符
void TFT_WR_Data16(u16 val);//写入一个16bit数据
void TFT_WR_REG(u8 data);   //写TFT寄存器
void TFT_WR_CMD(u8 dbw,u8 index,u16 val);//向寄存器写入数据

void drow_touch_point(u8 x,u16 y);//画一个校准点
void TFT_ShowString(u8 x,u16 y,const u8 *p);//显示一个字符串(仅E文)
void TFT_ShowNum(u8 x,u16 y,u16 num,u8 len,u8 size,u8 mode);  //显示一个数字.	0~65536	  

void TFT_ShowBigChar(u8 x,u16 y,u8 num);//在指定位置显示一个大字符!(仅限0~9&:)
void TFT_ShowBigNum(u8 x,u16 y,u8 num); //显示一个大的数字(0~99)
void TFT_ShowButton(u8 x,u16 y,u8 num); //在指定位置显示一个指定编号的按钮(SIZE:24*24)
void TFT_DrawLine(u8 x1, u16 y1, u8 x2, u16 y2);//画线
void TFT_DrawRectangle(u8 x1, u16 y1, u8 x2, u16 y2);//画一个矩形框
void TFT_ProBar(u8 lenth);//显示进度条

void Pro_Bar_Init(u8 x,u16 y,u8 len);
void Pro_Bar(u16 min,u16 max,u16 pos);
/////////////////////////////////////////////////////////////////
//FAT部分,外部要调用的函数
extern u32 file_ico[4]; //文件图标缓存区 folder.jpg;mus.jpg;pic.jpg;book.jpg;
extern u32 sys_ico[9];  //系统图标缓存区!不能篡改! 

extern FileInfoStruct F_Info[8];//文件结构体
extern DWORD FirstDirClust;     //根目录簇号
extern BYTE FAT32_Enable;       //FAT32标记
extern WORD BytesPerSector;	    //每扇区字节数
extern WORD SectorsPerClust;    //每簇扇区数
extern DWORD Fat_Dir_Cluster;   //父目录簇号
//在gui.c内的全局变量
extern DWORD Cur_Dir_Cluster;//当前目录簇号
extern DWORD Fat_Dir_Cluster;

unsigned char FAT_Init(void);//Initialize of FAT  need initialize SD first
unsigned long FAT_OpenDir(BYTE * dir);//打开目录		 	  
void F_Open(FileInfoStruct *FileInfo);//打开文件
u8 F_Read(FileInfoStruct *FileInfo,u8 *buf);//从文件读取512个字节 
unsigned char F_PrevRead(FileInfoStruct *FileInfo,u8 *buf);//从文件读取前512个字节
unsigned long FAT_PrevCluster(unsigned long cluster,unsigned long startcluster);//向前读取一个簇号
unsigned long FAT_NextCluster(unsigned long cluster);//查找下一簇号	
u8 Get_File_Info(u32 dir_clust,FileInfoStruct *FileInfo,u16 type,u16 *count);//查找/得到文件信息
u32 fatClustToSect(u32 cluster);//将簇号转换为扇区号
u8 SysInfoGet(u8 sel);//搜索系统文件						 
//////////////////////////////////////////////////////////////////
//SD卡部分,外部要调用的函数
extern u8  SD_Type;//SD卡的类型
u8  SD_Init(void);//SD卡初始化函数
u32 SD_GetCapacity(void);                       //取SD卡容量
u8  SD_ReadSingleBlock(u32 sector, u8 *buffer);  //读一个sector
u8  SD_Read_Bytes(unsigned long address,u8 *buf,unsigned int offset,unsigned int bytes);//读取一byte
//////////////////////////////////////////////////////////////////
//TXT阅读部分外部要用到的函数

⌨️ 快捷键说明

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