新手上路
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2013-3-14
- 在线时间
- 52 小时
|
发表于 2015-1-8 16:33:48
|
显示全部楼层
#ifndef __LCD_H_
#define __LCD_H_
#include "stm32f10x_conf.h"
/* LCD显示相关参数 */
#define HDP 799 //Horizontal Display  eriod
#define HT 1000 //Horizontal Total
#define HPS 51 //LLINE  ulse Start  osition
#define LPS 3 // Horizontal Display  eriod Start  osition
#define HPW 8 // LLINE  ulse Width
#define VDP 479 //Vertical Display  eriod
#define VT 530 //Vertical Total
#define VPS 24 //LFRAME  ulse Start  osition
#define FPS 23 //Vertical Display  eriod Start Positio
#define VPW 3 //LFRAME Pulse Width
/* 定义LCD的尺寸 */
#define LCD_W 800
#define LCD_H 480
/*Private define-------------------------*/
#define POINT_COLOR RED
#define BACK_COLOR 0xFFFF
/*--------16位颜色值---------------*/
//#define WHITE 0xFFFF
//#define BLACK 0x0000
//#define BLUE 0x001F
//#define RED 0xF800
//#define MAGENTA 0xF81F
//#define GREEN 0x07E0
//#define CYAN 0x7FFF
//#define YELLOW 0xFFE0
//#define BROWN 0XBC40 //棕色
//#define BRRED 0XFC07 //棕红色
//#define GRAY 0X8430 //灰色
//#define LGRAY 0XC618 //浅灰色
#define PI 3.14159
#define CLOCK_BK_COLOR GUI_BLUE //定义背景色
#define CLOCK_COLOR GUI_BLACK //定义画笔颜色
#define CLOCK_CENTER_X 200//95 //时钟圆心横坐标
#define CLOCK_CENTER_Y 280//110 //时钟圆心纵坐标
#define CLOCK_RADIUS 150//90 //时钟半径
#define CLOCK_RADIUS_W 4 //定义时钟外部轮廓厚度
#define CLOCK_RADIUS_M 3 //时钟中心小圆的半径
#define SCALL_OFFSET_B 12// 6 //定义整点时间点坐标偏移量
#define SCALL_OFFSET_S 8// 4 //非整点坐标偏移量
#define NUMBER_OFFSET 28//14 //数字显示的偏移量
#define SEC_PTR_OFFSET 45//25 //定义秒针的偏移量
#define MIN_PTR_OFFSET 60//35 //定义分针的偏移量
#define HOUR_PTR_OFFSET 80//50 //定义时针的偏移量
//--------------------------------------------------------------
#define Bank1_LCD_D ((uint32_t)0x6C000001) // Data ADDR
#define Bank1_LCD_C ((uint32_t)0x6C000000) // Reg ADDR
//#define LCD_bk_light PDout(3)
//#define LCD_Reset PGout(15)
//#define LCD_Width 320 //LCD 宽度
//#define LCD_Height 240 //LCD 高度
/*****************常用颜色定义*****************************/
#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 //棕色
#define BRRED 0XFC07 //棕红色
#define GRAY 0X8430 //灰色
//GUI颜色
#define DARKBLUE 0X01CF //深蓝色
#define LIGHTBLUE 0X7D7C //浅蓝色
#define GRAYBLUE 0X5458 //灰蓝色
//以上三色为PANEL的颜色
#define LIGHTGREEN 0X841F //浅绿色
#define LIGHTGRAY 0XEF5B //浅灰色(PANNEL)
#define LGRAY 0XC618 //浅灰色(PANNEL),窗体背景色
#define LGRAYBLUE 0XA651 //浅灰蓝色(中间层颜色)
#define LBBLUE 0X2B12 //浅棕蓝色(选择条目的反色)
/*----------函数声明------------*/
void LCD_FSMCConfiguration(void);
void LCD_Configuration(void);
void LCD_Init(void);
void LCD_WR_REG(uint16_t LCD_Reg);
void LCD_WR_DATA(uint16_t LCD_Data);
u16 LCD_ReadReg(uint16_t LCD_Reg);
void LCD_WriteReg(uint16_t LCD_Reg ,uint16_t LCD_RegValue);
void LCD_WR_DATA_Prepare(void);
void LCD_SetCursor(u16 Xpos, u16 Ypos);
u16 LCD_ReadPoint(u16 x,u16 y);
void LCD_Clear(uint16_t Color);
void LCD_Draw_Pixel(uint16_t xsta, uint16_t ysta, uint16_t color);
void LCD_WindowMax (unsigned int xsta,unsigned int ysta,unsigned int xend,unsigned int yend);
void LCD_Fill_color(uint16_t xsta, uint16_t ysta, uint16_t xend, uint16_t yend, uint16_t colour);
void LCD_Draw_Line(u16 x1, u16 y1, u16 x2, u16 y2,u16 color);
void LCD_Draw_Circle(u16 x0,u16 y0,u8 r,u16 color);
void LCD_Fill_Circle(u16 x0,u16 y0,u8 r,u16 color);
void LCD_Draw_Rectangle(uint16_t xsta, uint16_t ysta, uint16_t xend, uint16_t yend, uint16_t color);
void WriteOneChar(u16 x, u16 y, u8 num, u16 PenColor, u16 BackColor);
u32 mypow(u8 m,u8 n);
void LCD_ShowNum(uint16_t x,uint16_t y,u32 num,u8 len, u16 PenColor, u16 BackColor);
u16 findHzIndex(u8 *hz);
u8 WriteOneHz(u16 x0, u16 y0, u8 *pucMsk, u16 PenColor, u16 BackColor);
void LCD_ShowString(u16 x0, u16 y0, u8 *pcStr, u16 PenColor, u16 BackColor);
u16 LCD_RGBtoBGR(u16 Color);
void LCD_Draw_Picture(u16 Xpos,u16 Ypos,u16 Height,u16 Width,u8 *pic);
void Draw_big_line(u16 x1, u16 y1, u16 x2, u16 y2,u8 num,u16 color);
//---------------------------------------------------------------------------------------------
//画时分秒指针
//void DrawClockPointer(u8 hour, u8 min, u8 sec,u16 color);
void DrawClockPointer(u8 hour, u8 min, u8 sec,u16 hour_color,u16 min_color,u16 sec_color);
//清时分秒指针
void ClearClockPointer(u8 hour, u8 min, u8 sec,u16 color);
//画时钟的边界
void DrawClockBorder(u16 color);
//---------------------------------------------------------------------------------------------
//24*12的字体2014-02-24添加
void LCD_Show24Char(u16 x, u16 y, u8 num, u16 PenColor, u16 BackColor);
void LCD_Show24Num(uint16_t x,uint16_t y,u32 num,u8 len, u16 PenColor, u16 BackColor);
void LCD_Show24Float(uint16_t x,uint16_t y,u32 num,u8 len_T,u8 len_int, u16 PenColor, u16 BackColor);
void LCD_Show24String(u16 x0, u16 y0, u8 *pcStr, u16 PenColor, u16 BackColor);
u16 find24HzIndex(u8 *hz);
void LCD_ShowOne24Hz(u16 x, u16 y, u8 *pucMsk, u16 PenColor, u16 BackColor);
void LCD_bmp_Picture(u16 xstr,u16 ystr,u16 xend,u16 yend,u8 *pic,u16 PenColor, u16 BackColor);
//void LCD_bmp_Picture_2(u16 xstr,u16 ystr,u16 xend,u16 yend,u8 *pic,u16 PenColor, u16 BackColor);
void LCD_bmp_Full_Picture(u8 *pic,u16 PenColor, u16 BackColor);
//-------------------------------------------------------------------------
//别处复制的
//void sLCD_WR_REG(unsigned int index);
//__INLINE void sLCD_WR_Data(unsigned int val);
//u16 sLCD_Read_Data(void);
//void sLCD_OpenWindow(u32 x1, u32 y1, u32 x2, u32 y2);
//void LCD_SetPoint(u16 x,u16 y,u16 c);
//u16 LCD_GetPoint(u16 x, u16 y);
#endif |
|