LCD_driver.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #ifndef __LCD_H
  2. #define __LCD_H
  3. #include <stdint.h>
  4. #include <stdlib.h>
  5. #include "../PikaStdDevice/pika_hal.h"
  6. #define u8 uint8_t
  7. #define u16 uint16_t
  8. #define u32 uint32_t
  9. // LCD重要参数集
  10. typedef struct {
  11. u16 width; // LCD 宽度
  12. u16 height; // LCD 高度
  13. u16 id; // LCD ID
  14. u8 dir; // 横屏还是竖屏控制:0,竖屏;1,横屏。
  15. u16 wramcmd; // 开始写gram指令
  16. u16 setxcmd; // 设置x坐标指令
  17. u16 setycmd; // 设置y坐标指令
  18. } _lcd_dev;
  19. // LCD参数
  20. extern _lcd_dev lcddev; // 管理LCD重要参数
  21. #define USE_HORIZONTAL \
  22. 0 // 定义液晶屏顺时针旋转方向
  23. // 0-0度旋转,1-90度旋转,2-180度旋转,3-270度旋转
  24. // 定义LCD的尺寸
  25. #define LCD_W 320
  26. #define LCD_H 480
  27. // TFTLCD部分外要调用的函数
  28. extern u16 POINT_COLOR; // 默认红色
  29. extern u16 BACK_COLOR; // 背景颜色.默认为白色
  30. //-----------------LCD端口定义----------------
  31. // 如果使用官方库函数定义下列底层,速度将会下降到14帧每秒,建议采用我司推荐方法
  32. // 以下IO定义直接操作寄存器,快速IO操作,刷屏速率可以达到28帧每秒!
  33. #define LCD_CS_SET _LCD_CS_SET
  34. #define LCD_RS_SET _LCD_RS_SET
  35. #define LCD_RST_SET _LCD_RST_SET
  36. #define LCD_CS_CLR _LCD_CS_CLR
  37. #define LCD_RS_CLR _LCD_RS_CLR
  38. #define LCD_RST_CLR _LCD_RST_CLR
  39. // 画笔颜色
  40. #define WHITE 0xFFFF
  41. #define BLACK 0x0000
  42. #define BLUE 0x001F
  43. #define BRED 0XF81F
  44. #define GRED 0XFFE0
  45. #define GBLUE 0X07FF
  46. #define RED 0xF800
  47. #define MAGENTA 0xF81F
  48. #define GREEN 0x07E0
  49. #define CYAN 0x7FFF
  50. #define YELLOW 0xFFE0
  51. #define BROWN 0XBC40 // 棕色
  52. #define BRRED 0XFC07 // 棕红色
  53. #define GRAY 0X8430 // 灰色
  54. // GUI颜色
  55. #define DARKBLUE 0X01CF // 深蓝色
  56. #define LIGHTBLUE 0X7D7C // 浅蓝色
  57. #define GRAYBLUE 0X5458 // 灰蓝色
  58. // 以上三色为PANEL的颜色
  59. #define LIGHTGREEN 0X841F // 浅绿色
  60. #define LIGHTGRAY 0XEF5B // 浅灰色(PANNEL)
  61. #define LGRAY 0XC618 // 浅灰色(PANNEL),窗体背景色
  62. #define LGRAYBLUE 0XA651 // 浅灰蓝色(中间层颜色)
  63. #define LBBLUE 0X2B12 // 浅棕蓝色(选择条目的反色)
  64. void LCD_init(void);
  65. void LCD_displayOn(void);
  66. void LCD_displayOff(void);
  67. void LCD_clear(u16 Color);
  68. void LCD_setCursor(u16 Xpos, u16 Ypos);
  69. void LCD_drawPoint(u16 x, u16 y); // 画点
  70. u16 LCD_readPoint(u16 x, u16 y); // 读点
  71. void LCD_drawLine(u16 x1, u16 y1, u16 x2, u16 y2);
  72. void LCD_drawRectangle(u16 x1, u16 y1, u16 x2, u16 y2);
  73. void LCD_setRegion(u16 xStar, u16 yStar, u16 xEnd, u16 yEnd);
  74. void LCD_writePoint(u16 Data);
  75. void LCD_drawRegin(u16 x_start,
  76. u16 y_start,
  77. u16 x_end,
  78. u16 y_end,
  79. uint8_t* pData);
  80. u16 LCD_RD_DATA(void); // 读取LCD数据
  81. void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue);
  82. void LCD_WR_DATA(u8 data);
  83. u16 LCD_ReadReg(u8 LCD_Reg);
  84. void LCD_WriteRAM_Prepare(void);
  85. void LCD_WriteRAM(u16 RGB_Code);
  86. u16 LCD_ReadRAM(void);
  87. u16 LCD_BGR2RGB(u16 c);
  88. void LCD_SetParam(void);
  89. void LCD_direction(u8 direction);
  90. #endif