lcd.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #ifndef __LCD_Hx__
  2. #define __LCD_Hx__
  3. #include <rtthread.h>
  4. #include <rtdevice.h>
  5. #include "drivers/spi.h"
  6. #include "font.h"
  7. enum {
  8. COLOR_WHITE=0,
  9. COLOR_BLACK,
  10. COLOR_BLUE,
  11. COLOR_BRED,
  12. COLOR_GRED,
  13. COLOR_GBLUE,
  14. COLOR_RED,
  15. COLOR_MAGENTA,
  16. COLOR_GREEN,
  17. COLOR_CYAN,
  18. COLOR_YELLOW,
  19. COLOR_BROWN,
  20. COLOR_BRRED,
  21. COLOR_GRAY,
  22. COLOR_MAX,
  23. };
  24. #define LCD_COLOR COLOR_WB
  25. #define LCD_WIDTH 128
  26. #define LCD_HEIGHT 64
  27. /* 颜色 */
  28. #if (LCD_COLOR==COLOR_WB)
  29. #define COLOR_WHITE 1
  30. #define COLOR_BLACK 0
  31. #elif (LCD_COLOR==COLOR_RGB565)
  32. #define COLOR_WHITE 0xFFFF
  33. #define COLOR_BLACK 0x0000
  34. #define COLOR_BLUE 0x001F
  35. #define COLOR_BRED 0XF81F
  36. #define COLOR_GRED 0XFFE0
  37. #define COLOR_GBLUE 0X07FF
  38. #define COLOR_RED 0xF800
  39. #define COLOR_MAGENTA 0xF81F
  40. #define COLOR_GREEN 0x07E0
  41. #define COLOR_CYAN 0x7FFF
  42. #define COLOR_YELLOW 0xFFE0
  43. #define COLOR_BROWN 0XBC40
  44. #define COLOR_BRRED 0XFC07
  45. #define COLOR_GRAY 0X8430
  46. #elif (LCD_COLOR==COLOR_RGB666)
  47. #elif (LCD_COLOR==COLOR_RGB888)
  48. #else
  49. #endif
  50. enum {
  51. HORIZONTAL_LEFT=0,
  52. HORIZONTAL_CENTER,
  53. HORIZONTAL_RIGHT,
  54. };
  55. enum {
  56. VERTICAL_TOP=0,
  57. VERTICAL_CENTER,
  58. VERTICAL_BOTTOM,
  59. };
  60. enum {
  61. COLOR_WB=0,
  62. COLOR_RGB8,
  63. COLOR_RGB565,
  64. COLOR_RGB666,
  65. COLOR_RGB888,
  66. COLOR_RGBA,
  67. };
  68. typedef struct {
  69. int width;
  70. int height;
  71. int color;
  72. int rotate;
  73. rt_device_t dev;
  74. uint8_t *buf;
  75. int buflen;
  76. }lcd_handle_t;
  77. void lcd_init(int width, int height, uint32_t color);
  78. void lcd_deinit(void);
  79. void lcd_rotate(int angle);
  80. int lcd_get_rotate(void);
  81. void lcd_set_backlight(int on);
  82. void lcd_fill(uint32_t color);
  83. void lcd_draw_line(int x1, int y1, int x2, int y2, uint32_t color);
  84. void lcd_draw_rect(int x1, int y1, int w, int h, uint32_t color);
  85. void lcd_fill_rect(int x1, int y1, int w, int h, uint32_t color);
  86. void lcd_draw_string(int x, int y, int width, int height, char *str, int font, uint32_t color, uint32_t bgcolor, int hori, int vert);
  87. void lcd_refresh(void);
  88. #endif