111 lines
3.1 KiB
C
111 lines
3.1 KiB
C
/*
|
|
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* @file
|
|
* @brief BSP LCD
|
|
*
|
|
* This file offers API for basic LCD control.
|
|
* It is useful for users who want to use the LCD without the default Graphical Library LVGL.
|
|
*
|
|
* For standard LCD initialization with LVGL graphical library, you can call all-in-one function bsp_display_start().
|
|
*/
|
|
|
|
#pragma once
|
|
#include "esp_lcd_types.h"
|
|
|
|
/* LCD color formats */
|
|
#define ESP_LCD_COLOR_FORMAT_RGB565 (1)
|
|
#define ESP_LCD_COLOR_FORMAT_RGB888 (2)
|
|
|
|
/* LCD display color format */
|
|
#define BSP_LCD_COLOR_FORMAT (ESP_LCD_COLOR_FORMAT_RGB565)
|
|
/* LCD display color bytes endianness */
|
|
#define BSP_LCD_BIGENDIAN (1)
|
|
/* LCD display color bits */
|
|
#define BSP_LCD_BITS_PER_PIXEL (16)
|
|
/* LCD display color space */
|
|
#define BSP_LCD_COLOR_SPACE (ESP_LCD_COLOR_SPACE_RGB)
|
|
/* LCD definition */
|
|
#define BSP_LCD_H_RES (360)
|
|
#define BSP_LCD_V_RES (360)
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief BSP display configuration structure
|
|
*
|
|
*/
|
|
typedef struct {
|
|
int max_transfer_sz; /*!< Maximum transfer size, in bytes. */
|
|
} bsp_display_config_t;
|
|
|
|
/**
|
|
* @brief Create new display panel
|
|
*
|
|
* For maximum flexibility, this function performs only reset and initialization of the display.
|
|
* You must turn on the display explicitly by calling esp_lcd_panel_disp_on_off().
|
|
* The display's backlight is not turned on either. You can use bsp_display_backlight_on/off(),
|
|
* bsp_display_brightness_set() (on supported boards) or implement your own backlight control.
|
|
*
|
|
* If you want to free resources allocated by this function, you can use esp_lcd API, ie.:
|
|
*
|
|
* \code{.c}
|
|
* esp_lcd_panel_del(panel);
|
|
* esp_lcd_panel_io_del(io);
|
|
* spi_bus_free(spi_num_from_configuration);
|
|
* \endcode
|
|
*
|
|
* @param[in] config display configuration
|
|
* @param[out] ret_panel esp_lcd panel handle
|
|
* @param[out] ret_io esp_lcd IO handle
|
|
* @return
|
|
* - ESP_OK On success
|
|
* - Else esp_lcd failure
|
|
*/
|
|
esp_err_t bsp_display_new(const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io);
|
|
|
|
/**
|
|
* @brief Set display's brightness
|
|
*
|
|
* Brightness is controlled with PWM signal to a pin controlling backlight.
|
|
* Display must be already initialized by calling bsp_display_new()
|
|
*
|
|
* @param[in] brightness_percent Brightness in [%]
|
|
* @return
|
|
* - ESP_OK On success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
*/
|
|
esp_err_t bsp_display_brightness_set(int brightness_percent);
|
|
|
|
/**
|
|
* @brief Turn on display backlight
|
|
*
|
|
* Display must be already initialized by calling bsp_display_new()
|
|
*
|
|
* @return
|
|
* - ESP_OK On success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
*/
|
|
esp_err_t bsp_display_backlight_on(void);
|
|
|
|
/**
|
|
* @brief Turn off display backlight
|
|
*
|
|
* Display must be already initialized by calling bsp_display_new()
|
|
*
|
|
* @return
|
|
* - ESP_OK On success
|
|
* - ESP_ERR_INVALID_ARG Parameter error
|
|
*/
|
|
esp_err_t bsp_display_backlight_off(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|