DockerFluxDC/components/user_i80_display/user_i80_display.h

113 lines
2.9 KiB
C
Raw Permalink Normal View History

/**
* @file user_i80_display.h
* @brief LCD显示初始化
*
* LCD控制IO及初始化函数
*
* @author wang xiang en
* @date 2025-04-18
* @version
* @copyright (C)2025, YUWELL MEDTECH Co.ltd
*/
#ifndef _USER_I80_DISPLAY_PORT_H
#define _USER_I80_DISPLAY_PORT_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "esp_timer.h"
#include "esp_err.h"
#include "esp_log.h"
#include "esp_lcd_panel_io.h"
#include "esp_lcd_panel_vendor.h"
#include "esp_lcd_panel_ops.h"
#include "driver/gpio.h"
#include "lvgl.h"
#include "driver/i2c_master.h"
#include "esp_lcd_touch_ft5x06.h"
/* 定义总线IO Num */
#define EXAMPLE_PIN_NUM_DATA0 GPIO_NUM_18
#define EXAMPLE_PIN_NUM_DATA1 GPIO_NUM_17
#define EXAMPLE_PIN_NUM_DATA2 GPIO_NUM_16
#define EXAMPLE_PIN_NUM_DATA3 GPIO_NUM_15
#define EXAMPLE_PIN_NUM_DATA4 GPIO_NUM_7
#define EXAMPLE_PIN_NUM_DATA5 GPIO_NUM_6
#define EXAMPLE_PIN_NUM_DATA6 GPIO_NUM_5
#define EXAMPLE_PIN_NUM_DATA7 GPIO_NUM_4
/* 定义80总线控制IO NUM */
#define EXAMPLE_PIN_NUM_PCLK GPIO_NUM_19
#define EXAMPLE_PIN_NUM_CS GPIO_NUM_0
#define EXAMPLE_PIN_NUM_DC GPIO_NUM_20
#define EXAMPLE_PIN_NUM_RST GPIO_NUM_8
#define EXAMPLE_PIN_NUM_BK_LIGHT GPIO_NUM_3
/* 定义背光开启/关闭GPIO电平值 */
#define EXAMPLE_LCD_BK_LIGHT_ON_LEVEL (0)
#define EXAMPLE_LCD_BK_LIGHT_OFF_LEVEL !EXAMPLE_LCD_BK_LIGHT_ON_LEVEL
/* 定义LCD参数 */
#define EXAMPLE_LCD_H_RES 320
#define EXAMPLE_LCD_V_RES 480
/* 定义80总线及RAM总线宽度 */
#define EXAMPLE_LCD_CMD_BITS 8
#define EXAMPLE_LCD_PARAM_BITS 8
/* 定义触摸屏控制IO */
#define EXAMPLE_I2C_NUM 0
#define EXAMPLE_I2C_SCL GPIO_NUM_39
#define EXAMPLE_I2C_SDA GPIO_NUM_38
/* 定义LVGL任务参数 */
#define EXAMPLE_LVGL_TICK_PERIOD_MS 2
#define EXAMPLE_LVGL_TASK_MAX_DELAY_MS 500
#define EXAMPLE_LVGL_TASK_MIN_DELAY_MS 1
#define EXAMPLE_LVGL_TASK_STACK_SIZE (16 * 1024)
#define EXAMPLE_LVGL_TASK_PRIORITY 3
#define EXAMPLE_DMA_BURST_SIZE (64)
#define CONFIG_EXAMPLE_LCD_I80_BUS_WIDTH 8
/* 定义LCD像素时钟频率 */
#define EXAMPLE_LCD_PIXEL_CLOCK_HZ 20000000
/**
* @brief lvgl锁
*
*
*
* @param[in] timeout_ms LVGL锁时间
* @return true lvgl锁成功
*
*/
bool example_lvgl_lock(int timeout_ms);
/**
* @brief lvgl解锁
*
* LVGL锁
*
*/
void example_lvgl_unlock(void);
/**
* @brief LCD初始化函数
*
*/
void initialize_display_and_touch(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*_USER_I80_DISPLAY_PORT_H*/