Advertisement
honey_the_codewitch

lcd_init

May 26th, 2025
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.33 KB | None | 0 0
  1. #define PWR_EN_PIN  (10)
  2. #define PWR_ON_PIN  (14)
  3. #define BAT_ADC_PIN (5)
  4. #define BUTTON1_PIN (0)
  5. #define BUTTON2_PIN (21)
  6.  
  7. // lcd
  8. #define LCD_DATA0_PIN (48)
  9. #define LCD_DATA1_PIN (47)
  10. #define LCD_DATA2_PIN (39)
  11. #define LCD_DATA3_PIN (40)
  12. #define LCD_DATA4_PIN (41)
  13. #define LCD_DATA5_PIN (42)
  14. #define LCD_DATA6_PIN (45)
  15. #define LCD_DATA7_PIN (46)
  16. #define PCLK_PIN      (8)
  17. #define CS_PIN        (6)
  18. #define DC_PIN        (7)
  19. #define RST_PIN       (-1)
  20. #define BK_LIGHT_PIN  (38)
  21. #define LCD_HRES 240
  22. #define LCD_VRES 320
  23.  
  24. // touch screen
  25. #define TOUCHSCREEN_SCLK_PIN (1)
  26. #define TOUCHSCREEN_MISO_PIN (4)
  27. #define TOUCHSCREEN_MOSI_PIN (3)
  28. #define TOUCHSCREEN_CS_PIN   (2)
  29. #define TOUCHSCREEN_IRQ_PIN  (9)
  30.  
  31. // sd card
  32. #define SD_MISO_PIN (13)
  33. #define SD_MOSI_PIN (11)
  34. #define SD_SCLK_PIN (12)
  35.  
  36. #define SDIO_DATA0_PIN (13)
  37. #define SDIO_CMD_PIN   (11)
  38. #define SDIO_SCLK_PIN  (12)
  39.  
  40. #include "freertos/FreeRTOS.h"
  41. #include "freertos/task.h"
  42. #include "freertos/semphr.h"
  43. #include "esp_err.h"
  44. #include "esp_lcd_panel_io.h"
  45. #include "esp_lcd_panel_vendor.h"
  46. #include "esp_lcd_panel_ops.h"
  47. #include "driver/gpio.h"
  48. esp_lcd_panel_io_handle_t io_handle=NULL;
  49. esp_lcd_panel_handle_t panel_handle = NULL;
  50. void lcd_init()
  51. {
  52.     gpio_set_direction((gpio_num_t)PWR_ON_PIN, GPIO_MODE_OUTPUT);
  53.     gpio_set_level((gpio_num_t)PWR_ON_PIN, 1);
  54.  
  55.     vTaskDelay(pdMS_TO_TICKS(10));
  56.     gpio_set_direction((gpio_num_t)PWR_EN_PIN, GPIO_MODE_OUTPUT);
  57.     gpio_set_level((gpio_num_t)PWR_EN_PIN, 1);
  58.  
  59.     esp_lcd_i80_bus_handle_t i80_bus = NULL;
  60.     esp_lcd_i80_bus_config_t bus_config = {
  61.         .dc_gpio_num = DC_PIN,
  62.         .wr_gpio_num = PCLK_PIN,
  63.         .clk_src = LCD_CLK_SRC_PLL160M,
  64.         .data_gpio_nums = {
  65.             LCD_DATA0_PIN,
  66.             LCD_DATA1_PIN,
  67.             LCD_DATA2_PIN,
  68.             LCD_DATA3_PIN,
  69.             LCD_DATA4_PIN,
  70.             LCD_DATA5_PIN,
  71.             LCD_DATA6_PIN,
  72.             LCD_DATA7_PIN
  73.         },
  74.         .bus_width = 8,
  75.         .max_transfer_bytes = LCD_HRES * LCD_VRES * sizeof(uint16_t)
  76.     };
  77.     ESP_ERROR_CHECK(esp_lcd_new_i80_bus(&bus_config, &i80_bus));
  78.  
  79.     esp_lcd_panel_io_handle_t io_handle = NULL;
  80.     esp_lcd_panel_io_i80_config_t io_config = {
  81.         .cs_gpio_num = CS_PIN,
  82.         .pclk_hz = 10*1000*1000,
  83.         .trans_queue_depth = 10,
  84.         // .on_color_trans_done = example_notify_lvgl_flush_ready,
  85.         .user_ctx = NULL,
  86.         .lcd_cmd_bits = 8,
  87.         .lcd_param_bits = 9,
  88.         .dc_levels = {
  89.             .dc_idle_level = 0,
  90.             .dc_cmd_level = 0,
  91.             .dc_dummy_level = 0,
  92.             .dc_data_level = 1,
  93.         },
  94.         .flags = {
  95.             .swap_color_bytes = 1,
  96.         }
  97.     };
  98.     ESP_ERROR_CHECK(esp_lcd_new_panel_io_i80(i80_bus, &io_config, &io_handle));
  99.  
  100.     esp_lcd_panel_dev_config_t panel_config = {
  101.         .reset_gpio_num = RST_PIN,
  102.         .color_space = ESP_LCD_COLOR_SPACE_RGB,
  103.         .bits_per_pixel = 16,
  104.     };
  105.     ESP_ERROR_CHECK(esp_lcd_new_panel_st7789(io_handle, &panel_config, &panel_handle));
  106.  
  107.     esp_lcd_panel_reset(panel_handle);
  108.     esp_lcd_panel_init(panel_handle);
  109.     esp_lcd_panel_mirror(panel_handle, false, true);
  110.     esp_lcd_panel_swap_xy(panel_handle, true);
  111.  
  112.     gpio_set_direction((gpio_num_t)BK_LIGHT_PIN, GPIO_MODE_OUTPUT);
  113.     gpio_set_level((gpio_num_t)BK_LIGHT_PIN, 1);
  114. }
  115.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement