lcd_st7701.h 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. #pragma once
  2. #include "esp_err.h"
  3. #include "driver/gpio.h"
  4. // LCD分辨率定义
  5. #define LCD_H_RES (480) // 水平分辨率
  6. #define LCD_V_RES (480) // 垂直分辨率
  7. #define LCD_BIT_PER_PIXEL (18) // 每像素位数
  8. #define RGB_BIT_PER_PIXEL (16) // RGB每像素位数
  9. #define RGB_DATA_WIDTH (16) // RGB数据宽度
  10. #define RGB_BOUNCE_BUFFER_SIZE (LCD_H_RES * 10) // RGB反弹缓冲区大小
  11. // RGB接口引脚定义
  12. #define LCD_IO_RGB_DISP (-1) // RGB显示引脚,未使用
  13. #define LCD_IO_RGB_VSYNC (GPIO_NUM_21) // RGB垂直同步信号引脚
  14. #define LCD_IO_RGB_HSYNC (GPIO_NUM_14) // RGB水平同步信号引脚
  15. #define LCD_IO_RGB_DE (GPIO_NUM_47) // RGB数据使能引脚
  16. #define LCD_IO_RGB_PCLK (GPIO_NUM_48) // RGB像素时钟引脚
  17. // RGB数据引脚定义,从DB0到DB15
  18. #define LCD_IO_RGB_DATA0 (GPIO_NUM_13)
  19. #define LCD_IO_RGB_DATA1 (GPIO_NUM_12)
  20. #define LCD_IO_RGB_DATA2 (GPIO_NUM_11)
  21. #define LCD_IO_RGB_DATA3 (GPIO_NUM_10)
  22. #define LCD_IO_RGB_DATA4 (GPIO_NUM_9)
  23. #define LCD_IO_RGB_DATA5 (GPIO_NUM_46)
  24. #define LCD_IO_RGB_DATA6 (GPIO_NUM_3)
  25. #define LCD_IO_RGB_DATA7 (GPIO_NUM_20)
  26. #define LCD_IO_RGB_DATA8 (GPIO_NUM_19)
  27. #define LCD_IO_RGB_DATA9 (GPIO_NUM_8)
  28. #define LCD_IO_RGB_DATA10 (GPIO_NUM_18)
  29. #define LCD_IO_RGB_DATA11 (GPIO_NUM_17)
  30. #define LCD_IO_RGB_DATA12 (GPIO_NUM_16)
  31. #define LCD_IO_RGB_DATA13 (GPIO_NUM_15)
  32. #define LCD_IO_RGB_DATA14 (GPIO_NUM_7)
  33. #define LCD_IO_RGB_DATA15 (GPIO_NUM_6)
  34. // SPI接口引脚定义
  35. #define LCD_IO_SPI_CS (GPIO_NUM_45) // SPI片选引脚
  36. #define LCD_IO_SPI_SCL (GPIO_NUM_38) // SPI时钟引脚
  37. #define LCD_IO_SPI_SDA (GPIO_NUM_39) // SPI数据引脚
  38. #define LCD_IO_RST (-1) // 复位引脚,未使用
  39. // 背光控制引脚定义
  40. #define PIN_NUM_BK_LIGHT (40) // 背光控制引脚
  41. #define LCD_BK_LIGHT_ON_LEVEL (1) // 背光开启电平
  42. #define LCD_BK_LIGHT_OFF_LEVEL !LCD_BK_LIGHT_ON_LEVEL // 背光关闭电平
  43. // 触摸屏I2C接口定义
  44. #define TOUCH_HOST (I2C_NUM_1) // 触摸屏I2C主机
  45. #define PIN_NUM_TOUCH_SCL (GPIO_NUM_4) // 触摸屏I2C时钟引脚
  46. #define PIN_NUM_TOUCH_SDA (GPIO_NUM_5) // 触摸屏I2C数据引脚
  47. #define PIN_NUM_TOUCH_RST (GPIO_NUM_NC) // 触摸屏复位引脚,未使用
  48. #define PIN_NUM_TOUCH_INT (GPIO_NUM_NC) // 触摸屏中断引脚,未使用
  49. #define LCD_CS_Clr() gpio_set_level(LCD_IO_SPI_CS, 0)
  50. #define LCD_CS_Set() gpio_set_level(LCD_IO_SPI_CS, 1)
  51. #define LCD_SCK_Clr() gpio_set_level(LCD_IO_SPI_SCL, 0)
  52. #define LCD_SCK_Set() gpio_set_level(LCD_IO_SPI_SCL, 1)
  53. #define LCD_SDA_Clr() gpio_set_level(LCD_IO_SPI_SDA, 0)
  54. #define LCD_SDA_Set() gpio_set_level(LCD_IO_SPI_SDA, 1)
  55. /**
  56. * @brief 初始化LCD和触摸屏
  57. * @return
  58. * - ESP_OK 成功
  59. * - ESP_FAIL 失败
  60. */
  61. esp_err_t lcd_st7701_init(void);
  62. /**
  63. * 获取背光状态
  64. * @return true 亮,false 灭
  65. */
  66. bool lcd_st7701_get_blacklight();
  67. /**
  68. * @brief 打开LCD背光
  69. * @return
  70. * - ESP_OK 成功
  71. * - ESP_FAIL 失败
  72. */
  73. esp_err_t lcd_st7701_backlight_on(void);
  74. /**
  75. * @brief 关闭LCD背光
  76. * @return
  77. * - ESP_OK 成功
  78. * - ESP_FAIL 失败
  79. */
  80. esp_err_t lcd_st7701_backlight_off(void);
  81. //#pragma once
  82. //
  83. //#include "esp_err.h"
  84. //#include "driver/gpio.h"
  85. //
  86. //// LCD分辨率定义
  87. //#define LCD_H_RES (480) // 水平分辨率
  88. //#define LCD_V_RES (480) // 垂直分辨率
  89. //#define LCD_BIT_PER_PIXEL (18) // 每像素位数
  90. //#define RGB_BIT_PER_PIXEL (16) // RGB每像素位数
  91. //#define RGB_DATA_WIDTH (16) // RGB数据宽度
  92. //#define RGB_BOUNCE_BUFFER_SIZE (LCD_H_RES * 10) // RGB反弹缓冲区大小
  93. //
  94. //// RGB接口引脚定义
  95. //#define LCD_IO_RGB_DISP (-1) // RGB显示引脚,未使用
  96. //#define LCD_IO_RGB_VSYNC (GPIO_NUM_48) // RGB垂直同步信号引脚
  97. //#define LCD_IO_RGB_HSYNC (GPIO_NUM_47) // RGB水平同步信号引脚
  98. //#define LCD_IO_RGB_DE (GPIO_NUM_45) // RGB数据使能引脚
  99. //#define LCD_IO_RGB_PCLK (GPIO_NUM_38) // RGB像素时钟引脚
  100. //// RGB数据引脚定义,从DB0到DB15
  101. //#define LCD_IO_RGB_DATA0 (GPIO_NUM_21)
  102. //#define LCD_IO_RGB_DATA1 (GPIO_NUM_14)
  103. //#define LCD_IO_RGB_DATA2 (GPIO_NUM_13)
  104. //#define LCD_IO_RGB_DATA3 (GPIO_NUM_12)
  105. //#define LCD_IO_RGB_DATA4 (GPIO_NUM_11)
  106. //#define LCD_IO_RGB_DATA5 (GPIO_NUM_10)
  107. //#define LCD_IO_RGB_DATA6 (GPIO_NUM_9 )
  108. //#define LCD_IO_RGB_DATA7 (GPIO_NUM_46)
  109. //#define LCD_IO_RGB_DATA8 (GPIO_NUM_3 )
  110. //#define LCD_IO_RGB_DATA9 (GPIO_NUM_20)
  111. //#define LCD_IO_RGB_DATA10 (GPIO_NUM_19)
  112. //#define LCD_IO_RGB_DATA11 (GPIO_NUM_8 )
  113. //#define LCD_IO_RGB_DATA12 (GPIO_NUM_16)
  114. //#define LCD_IO_RGB_DATA13 (GPIO_NUM_15)
  115. //#define LCD_IO_RGB_DATA14 (GPIO_NUM_7)
  116. //#define LCD_IO_RGB_DATA15 (GPIO_NUM_6)
  117. //
  118. //
  119. //// SPI接口引脚定义
  120. //#define LCD_IO_SPI_CS (GPIO_NUM_39) // SPI片选引脚
  121. //#define LCD_IO_SPI_SCL (GPIO_NUM_21) // SPI时钟引脚
  122. //#define LCD_IO_SPI_SDA (GPIO_NUM_14) // SPI数据引脚
  123. //#define LCD_IO_RST (-1) // 复位引脚,未使用
  124. //
  125. //// 背光控制引脚定义
  126. //#define PIN_NUM_BK_LIGHT (-1) // 背光控制引脚
  127. //#define LCD_BK_LIGHT_ON_LEVEL (1) // 背光开启电平
  128. //#define LCD_BK_LIGHT_OFF_LEVEL !LCD_BK_LIGHT_ON_LEVEL // 背光关闭电平
  129. //
  130. //// 触摸屏I2C接口定义
  131. //#define TOUCH_HOST (I2C_NUM_1) // 触摸屏I2C主机
  132. //#define PIN_NUM_TOUCH_SCL (GPIO_NUM_4) // 触摸屏I2C时钟引脚
  133. //#define PIN_NUM_TOUCH_SDA (GPIO_NUM_5) // 触摸屏I2C数据引脚
  134. //#define PIN_NUM_TOUCH_RST (GPIO_NUM_NC) // 触摸屏复位引脚,未使用
  135. //#define PIN_NUM_TOUCH_INT (GPIO_NUM_NC) // 触摸屏中断引脚,未使用
  136. //
  137. //#define LCD_CS_Clr() gpio_set_level(LCD_IO_SPI_CS, 0)
  138. //#define LCD_CS_Set() gpio_set_level(LCD_IO_SPI_CS, 1)
  139. //#define LCD_SCK_Clr() gpio_set_level(LCD_IO_SPI_SCL, 0)
  140. //#define LCD_SCK_Set() gpio_set_level(LCD_IO_SPI_SCL, 1)
  141. //#define LCD_SDA_Clr() gpio_set_level(LCD_IO_SPI_SDA, 0)
  142. //#define LCD_SDA_Set() gpio_set_level(LCD_IO_SPI_SDA, 1)
  143. //
  144. ///**
  145. // * @brief 初始化LCD和触摸屏
  146. // * @return
  147. // * - ESP_OK 成功
  148. // * - ESP_FAIL 失败
  149. // */
  150. //esp_err_t lcd_st7701_init(void);
  151. //
  152. ///**
  153. // * @brief 打开LCD背光
  154. // * @return
  155. // * - ESP_OK 成功
  156. // * - ESP_FAIL 失败
  157. // */
  158. //esp_err_t lcd_st7701_backlight_on(void);
  159. //
  160. ///**
  161. // * @brief 关闭LCD背光
  162. // * @return
  163. // * - ESP_OK 成功
  164. // * - ESP_FAIL 失败
  165. // */
  166. //esp_err_t lcd_st7701_backlight_off(void);