lcd.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #ifndef __LCD_H
  2. #define __LCD_H
  3. #include "systick.h"
  4. #include "stdlib.h"
  5. #include "gd32vf103_gpio.h"
  6. #define USE_HORIZONTAL 2 //Set horizontal or vertical screen display 0 or 1 for vertical screen 2 or 3 for horizontal screen
  7. #define HAS_BLK_CNTL 0
  8. #if USE_HORIZONTAL==0||USE_HORIZONTAL==1
  9. #define LCD_W 80
  10. #define LCD_H 160
  11. #else
  12. #define LCD_W 160
  13. #define LCD_H 80
  14. #endif
  15. typedef unsigned char u8;
  16. typedef unsigned int u16;
  17. typedef unsigned long u32;
  18. // #define LED_ON gpio_bit_reset(GPIOC,GPIO_PIN_13)
  19. // #define LED_OFF gpio_bit_set(GPIOC,GPIO_PIN_13)
  20. #define LED_ON
  21. #define LED_OFF
  22. #define SPI0_CFG 1 //hardware spi
  23. // #define SPI0_CFG 2 //hardware spi dma
  24. // #define SPI0_CFG 3 //software spi
  25. #define FRAME_SIZE 25600
  26. //-----------------OLED端口定义----------------
  27. #if SPI0_CFG == 1
  28. #define OLED_SCLK_Clr()
  29. #define OLED_SCLK_Set()
  30. #define OLED_SDIN_Clr()
  31. #define OLED_SDIN_Set()
  32. #define OLED_CS_Clr() gpio_bit_reset(GPIOB,GPIO_PIN_2) //CS PB2
  33. #define OLED_CS_Set() gpio_bit_set(GPIOB,GPIO_PIN_2)
  34. #elif SPI0_CFG == 2
  35. #define OLED_SCLK_Clr()
  36. #define OLED_SCLK_Set()
  37. #define OLED_SDIN_Clr()
  38. #define OLED_SDIN_Set()
  39. #define OLED_CS_Clr()
  40. #define OLED_CS_Set()
  41. #else /* SPI0_CFG */
  42. #define OLED_SCLK_Clr() gpio_bit_reset(GPIOA,GPIO_PIN_5) //CLK PA5
  43. #define OLED_SCLK_Set() gpio_bit_set(GPIOA,GPIO_PIN_5)
  44. #define OLED_SDIN_Clr() gpio_bit_reset(GPIOA,GPIO_PIN_7) //DIN PA7
  45. #define OLED_SDIN_Set() gpio_bit_set(GPIOA,GPIO_PIN_7)
  46. #define OLED_CS_Clr() gpio_bit_reset(GPIOB,GPIO_PIN_2) //CS PB2
  47. #define OLED_CS_Set() gpio_bit_set(GPIOB,GPIO_PIN_2)
  48. #endif /* SPI0_CFG */
  49. #define OLED_RST_Clr() gpio_bit_reset(GPIOB,GPIO_PIN_1) //RES PB1
  50. #define OLED_RST_Set() gpio_bit_set(GPIOB,GPIO_PIN_1)
  51. #define OLED_DC_Clr() gpio_bit_reset(GPIOB,GPIO_PIN_0) //DC PB0
  52. #define OLED_DC_Set() gpio_bit_set(GPIOB,GPIO_PIN_0)
  53. #if HAS_BLK_CNTL
  54. #define OLED_BLK_Clr() gpio_bit_reset(GPIOA,GPIO_PIN_5)//BLK
  55. #define OLED_BLK_Set() gpio_bit_set(GPIOA,GPIO_PIN_5)
  56. #else
  57. #define OLED_BLK_Clr()
  58. #define OLED_BLK_Set()
  59. #endif
  60. #define OLED_CMD 0 //Write command
  61. #define OLED_DATA 1 //Write data
  62. extern u16 BACK_COLOR; //Background color
  63. extern unsigned char image[12800];
  64. void LCD_Writ_Bus(u8 dat);
  65. void LCD_WR_DATA8(u8 dat);
  66. void LCD_WR_DATA(u16 dat);
  67. void LCD_WR_REG(u8 dat);
  68. void LCD_Address_Set(u16 x1,u16 y1,u16 x2,u16 y2);
  69. void Lcd_Init(void);
  70. void LCD_Clear(u16 Color);
  71. void LCD_ShowChinese(u16 x,u16 y,u8 index,u8 size,u16 color);
  72. void LCD_DrawPoint(u16 x,u16 y,u16 color);
  73. void LCD_DrawPoint_big(u16 x,u16 y,u16 color);
  74. void LCD_Fill(u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color);
  75. void LCD_DrawLine(u16 x1,u16 y1,u16 x2,u16 y2,u16 color);
  76. void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2,u16 color);
  77. void Draw_Circle(u16 x0,u16 y0,u8 r,u16 color);
  78. void LCD_ShowChar(u16 x,u16 y,u8 num,u8 mode,u16 color);
  79. void LCD_ShowString(u16 x,u16 y,const u8 *p,u16 color);
  80. u32 mypow(u8 m,u8 n);
  81. void LCD_ShowNum(u16 x,u16 y,u16 num,u8 len,u16 color);
  82. void LCD_ShowNum1(u16 x,u16 y,float num,u8 len,u16 color);
  83. void LCD_ShowPicture(u16 x1,u16 y1,u16 x2,u16 y2);
  84. void LCD_ShowLogo(void);
  85. //Brush color
  86. #define WHITE 0xFFFF
  87. #define BLACK 0x0000
  88. #define BLUE 0x001F
  89. #define BRED 0XF81F
  90. #define GRED 0XFFE0
  91. #define GBLUE 0X07FF
  92. #define RED 0xF800
  93. #define MAGENTA 0xF81F
  94. #define GREEN 0x07E0
  95. #define CYAN 0x7FFF
  96. #define YELLOW 0xFFE0
  97. #define BROWN 0XBC40 //brown
  98. #define BRRED 0XFC07 //maroon
  99. #define GRAY 0X8430 //gray
  100. //GUI color
  101. #define DARKBLUE 0X01CF //navy blue
  102. #define LIGHTBLUE 0X7D7C //light blue
  103. #define GRAYBLUE 0X5458 //gray blue
  104. //The above three colors are the colors of PANEL
  105. #define LIGHTGREEN 0X841F //light green
  106. #define LGRAY 0XC618 //Light gray (PANNEL), form background color
  107. #define LGRAYBLUE 0XA651 //Light gray blue (middle layer color)
  108. #define LBBLUE 0X2B12 //Light brown blue (inverted color of selected item)
  109. #endif