用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

166 lines
5.0 KiB

3 months ago
#ifndef __LCD_H
#define __LCD_H
#include "sys.h"
#include "stdlib.h"
//LCD<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
u16 width; //LCD <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u16 height; //LCD <EFBFBD>߶<EFBFBD>
u16 id; //LCD ID
u8 dir; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u16 wramcmd; //<EFBFBD><EFBFBD>ʼдgramָ<EFBFBD><EFBFBD>
u16 setxcmd; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
u16 setycmd; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
}_lcd_dev;
//LCD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern _lcd_dev lcddev; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCD<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//LCD<EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD>ɫ
extern u16 POINT_COLOR;//Ĭ<EFBFBD>Ϻ<EFBFBD>ɫ
extern u16 BACK_COLOR; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ.Ĭ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ɫ
////////////////////////////////////////////////////////////////////
//-----------------LCD<EFBFBD>˿ڶ<EFBFBD><EFBFBD><EFBFBD>----------------
#define LCD_LED PCout(10) //LCD<EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC10
#define LCD_CS_SET GPIOC->BSRR=1<<9 //Ƭѡ<EFBFBD>˿<EFBFBD> PC9
#define LCD_RS_SET GPIOC->BSRR=1<<8 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC8
#define LCD_WR_SET GPIOC->BSRR=1<<7 //д<EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC7
#define LCD_RD_SET GPIOC->BSRR=1<<6 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC6
#define LCD_CS_CLR GPIOC->BRR=1<<9 //Ƭѡ<EFBFBD>˿<EFBFBD> PC9
#define LCD_RS_CLR GPIOC->BRR=1<<8 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC8
#define LCD_WR_CLR GPIOC->BRR=1<<7 //д<EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC7
#define LCD_RD_CLR GPIOC->BRR=1<<6 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PC6
//PB0~15,<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATAOUT(x) GPIOB->ODR=x; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATAIN GPIOB->IDR; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////
//ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define L2R_U2D 0 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>
#define L2R_D2U 1 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>
#define R2L_U2D 2 //<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>
#define R2L_D2U 3 //<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>
#define U2D_L2R 4 //<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define U2D_R2L 5 //<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>
#define D2U_L2R 6 //<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define D2U_R2L 7 //<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>
#define DFT_SCAN_DIR L2R_U2D //Ĭ<EFBFBD>ϵ<EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD>
//ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define L2R_U2D 0 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>
#define L2R_D2U 1 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>
#define R2L_U2D 2 //<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>
#define R2L_D2U 3 //<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>
#define U2D_L2R 4 //<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define U2D_R2L 5 //<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>
#define D2U_L2R 6 //<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define D2U_R2L 7 //<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>
#define DFT_SCAN_DIR L2R_U2D //Ĭ<EFBFBD>ϵ<EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD>
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define WHITE 0xFFFF
#define BLACK 0x0000
#define BLUE 0x001F
#define BRED 0XF81F
#define GRED 0XFFE0
#define GBLUE 0X07FF
#define RED 0xF800
#define MAGENTA 0xF81F
#define GREEN 0x07E0
#define CYAN 0x7FFF
#define YELLOW 0xFFE0
#define BROWN 0XBC40 //<EFBFBD><EFBFBD>ɫ
#define BRRED 0XFC07 //<EFBFBD>غ<EFBFBD>ɫ
#define GRAY 0X8430 //<EFBFBD><EFBFBD>ɫ
//GUI<EFBFBD><EFBFBD>ɫ
#define DARKBLUE 0X01CF //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define LIGHTBLUE 0X7D7C //dz<EFBFBD><EFBFBD>ɫ
#define GRAYBLUE 0X5458 //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫΪPANEL<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define LIGHTGREEN 0X841F //dz<EFBFBD><EFBFBD>ɫ
#define LGRAY 0XC618 //dz<EFBFBD><EFBFBD>ɫ(PANNEL),<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#define LGRAYBLUE 0XA651 //dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ(<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ)
#define LBBLUE 0X2B12 //dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ(ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ķ<EFBFBD>ɫ)
void LCD_Init(void); //<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
void LCD_DisplayOn(void); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
void LCD_DisplayOff(void); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
void LCD_Clear(u16 Color); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_SetCursor(u16 Xpos, u16 Ypos); //<EFBFBD><EFBFBD><EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD>
void LCD_DrawPoint(u16 x,u16 y); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color); //<EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD>
u16 LCD_ReadPoint(u16 x,u16 y); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_Draw_Circle(u16 x0,u16 y0,u8 r); //<EFBFBD><EFBFBD>Բ
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color); //<EFBFBD><EFBFBD><EFBFBD>䵥ɫ
void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode); //<EFBFBD><EFBFBD>ʾһ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size); //<EFBFBD><EFBFBD>ʾһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode); //<EFBFBD><EFBFBD>ʾ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p); //<EFBFBD><EFBFBD>ʾһ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>,12/16<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue);
u16 LCD_ReadReg(u16 LCD_Reg);
void LCD_WriteRAM_Prepare(void);
void LCD_WriteRAM(u16 RGB_Code);
void LCD_Scan_Dir(u8 dir); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD>
void LCD_Display_Dir(u8 dir); //<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height); //<EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD>
//д<EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><EFBFBD><EFBFBD>
#define LCD_WR_DATA(data){\
LCD_RS_SET;\
LCD_CS_CLR;\
DATAOUT(data);\
LCD_WR_CLR;\
LCD_WR_SET;\
LCD_CS_SET;\
}
//LCD<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SSD_HOR_RESOLUTION 800 //LCDˮƽ<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>
#define SSD_VER_RESOLUTION 480 //LCD<EFBFBD><EFBFBD>ֱ<EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>
//LCD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SSD_HOR_PULSE_WIDTH 1 //ˮƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SSD_HOR_BACK_PORCH 46 //ˮƽǰ<EFBFBD><EFBFBD>
#define SSD_HOR_FRONT_PORCH 210 //ˮƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SSD_VER_PULSE_WIDTH 1 //<EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SSD_VER_BACK_PORCH 23 //<EFBFBD><EFBFBD>ֱǰ<EFBFBD><EFBFBD>
#define SSD_VER_FRONT_PORCH 22 //<EFBFBD><EFBFBD>ֱǰ<EFBFBD><EFBFBD>
//<EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SSD_HT (SSD_HOR_RESOLUTION+SSD_HOR_BACK_PORCH+SSD_HOR_FRONT_PORCH)
#define SSD_HPS (SSD_HOR_BACK_PORCH)
#define SSD_VT (SSD_VER_RESOLUTION+SSD_VER_BACK_PORCH+SSD_VER_FRONT_PORCH)
#define SSD_VPS (SSD_VER_BACK_PORCH)
#endif