9.2.3 RGB888驱动程序
/**
* @brief lcd 引脚配置及端口初始化
*/
static void _bsp_lcd_gpio_config(void){
uint32_t i;
GPIO_Init(LCD_BKL_PORT, LCD_BKL_PIN, 1, 0, 0, 0);//初始化背光引脚
GPIO_SetBit(LCD_BKL_PORT, LCD_BKL_PIN);//背光引脚拉高
GPIO_Init(LCD_RST_PORT, LCD_RST_PIN, 1, 0, 0, 0);//初始化复位引脚
GPIO_ClrBit(LCD_RST_PORT, LCD_RST_PIN);//复位引脚拉低
for(i = 0; i < 1000000; i++) __NOP();
GPIO_SetBit(LCD_RST_PORT, LCD_RST_PIN);//复位引脚拉高
for(i = 0; i < 1000000; i++) __NOP();
PORT_Init(LCD_B0_PORT, LCD_B0_PIN, LCD_B0_SEL, 0);//初始化RGB888 24根数据端口
PORT_Init(LCD_B1_PORT, LCD_B1_PIN, LCD_B1_SEL, 0);
PORT_Init(LCD_B2_PORT, LCD_B2_PIN, LCD_B2_SEL, 0);
PORT_Init(LCD_B3_PORT, LCD_B3_PIN, LCD_B3_SEL, 0);
PORT_Init(LCD_B4_PORT, LCD_B4_PIN, LCD_B4_SEL, 0);
PORT_Init(LCD_B5_PORT, LCD_B5_PIN, LCD_B5_SEL, 0);
PORT_Init(LCD_B6_PORT, LCD_B6_PIN, LCD_B6_SEL, 0);
PORT_Init(LCD_B7_PORT, LCD_B7_PIN, LCD_B7_SEL, 0);
PORT_Init(LCD_G0_PORT, LCD_G0_PIN, LCD_G0_SEL, 0);
PORT_Init(LCD_G1_PORT, LCD_G1_PIN, LCD_G1_SEL, 0);
PORT_Init(LCD_G2_PORT, LCD_G2_PIN, LCD_G2_SEL, 0);
PORT_Init(LCD_G3_PORT, LCD_G3_PIN, LCD_G3_SEL, 0);
PORT_Init(LCD_G4_PORT, LCD_G4_PIN, LCD_G4_SEL, 0);
PORT_Init(LCD_G5_PORT, LCD_G5_PIN, LCD_G5_SEL, 0);
PORT_Init(LCD_G6_PORT, LCD_G6_PIN, LCD_G6_SEL, 0);
PORT_Init(LCD_G7_PORT, LCD_G7_PIN, LCD_G7_SEL, 0);
PORT_Init(LCD_R0_PORT, LCD_R0_PIN, LCD_R0_SEL, 0);
PORT_Init(LCD_R1_PORT, LCD_R1_PIN, LCD_R1_SEL, 0);
PORT_Init(LCD_R2_PORT, LCD_R2_PIN, LCD_R2_SEL, 0);
PORT_Init(LCD_R3_PORT, LCD_R3_PIN, LCD_R3_SEL, 0);
PORT_Init(LCD_R4_PORT, LCD_R4_PIN, LCD_R4_SEL, 0);
PORT_Init(LCD_R5_PORT, LCD_R5_PIN, LCD_R5_SEL, 0);
PORT_Init(LCD_R6_PORT, LCD_R6_PIN, LCD_R6_SEL, 0);
PORT_Init(LCD_R7_PORT, LCD_R7_PIN, LCD_R7_SEL, 0);
PORT_Init(LCD_VSYNC_PORT, LCD_VSYNC_PIN, LCD_VSYNC_SEL, 0);//初始化垂直同步
PORT_Init(LCD_HSYNC_PORT, LCD_HSYNC_PIN, LCD_HSYNC_SEL, 0);//初始化水平同步
PORT_Init(LCD_DEN_PORT , LCD_DEN_PIN , LCD_DEN_SEL , 0);//初始化数据使能
PORT_Init(LCD_DCLK_PORT , LCD_DCLK_PIN , LCD_DCLK_SEL , 0);//初始化时钟端口
}
#define LCD_BUF_UT uint32_t
#define LCD_WIDTH (800)
#define LCD_HEIGTH (480)
#define LCD_ClkDiv (4)
#define LCD_Format (LCD_FMT_RGB888)
#define LCD_Hfp (40)
#define LCD_Hbp (40)
#define LCD_Vfp (13)
#define LCD_Vbp (29)
#define LCD_HsyncWidth (48)
#define LCD_VsyncWidth (48)
LCD_BUF_UT *_LCD_Buffer = (LCD_BUF_UT *)SDRAMM_BASE;
/**
* @brief lcd 初始化
*/
void _lcd_init_sturct(){
LCD_InitStructure LCD_initStruct;
LCD_initStruct.ClkDiv = LCD_ClkDiv;//时钟分频 4分频
LCD_initStruct.Format = LCD_Format;//数据格式 RGB888
LCD_initStruct.HnPixel = LCD_WIDTH;//水平方向像素点 宽度800
LCD_initStruct.VnPixel = LCD_HEIGTH;//垂直方向像素点 高度480
LCD_initStruct.Hfp = LCD_Hfp;//水平同步信号的前肩
LCD_initStruct.Hbp = LCD_Hbp;//水平同步信号的后肩
LCD_initStruct.Vfp = LCD_Vfp;//垂直同步信号的前肩
LCD_initStruct.Vbp = LCD_Vbp;//垂直同步信号的后肩
LCD_initStruct.HsyncWidth = LCD_HsyncWidth;//表示水平同步信号的宽度
LCD_initStruct.VsyncWidth = LCD_VsyncWidth;//表示垂直同步脉冲的宽度
LCD_initStruct.DataSource = (uint32_t)_LCD_Buffer;//数据地址
LCD_initStruct.Background = 0x0;//背景色
LCD_initStruct.SampleEdge = LCD_SAMPLE_RISE; // 上升沿采样
LCD_initStruct.IntEOTEn = 1; //End of Transter(传输完成)中断使能
LCD_Init(LCD, &LCD_initStruct);
}
/**
* @brief rgb888 lcd init
*/
void bsp_lcd_rgb_init(void)
{
_MemoryInit();//SDRAM init
_bsp_lcd_gpio_config();//lcd gpio init
_lcd_init_sturct();//lcd init
LCD_Start(LCD);//start lcd
}
/**
* @brief 画点函数
* @param x :需要画点的 x 坐标值
* @param y :需要画点的 y 坐标值
* @param color :颜色值
*/
void lcd_draw_point(uint16_t x, uint16_t y, uint32_t color)
{
_LCD_Buffer[y * LCD_WIDTH + x] = color;
}
-
- GT-HMI Designer用户手册
- GT-HMI Engine用户手册
- 高通字库芯片开发资料
- GTDB-X7ESP 高通智匠AI开发板规格书
- GTC-480480TFT40XP模块使用手册
- GTC-480272TFT43XP模块使用手册
- GTC-800480TFT50G模块使用手册
- GTC-800480TFT70GP模块使用手册
- GTC-1024600TFT101GP模块使用手册
- GT-GUI LCD 0.96寸液晶模组数据手册
- GT-GUI LCD 1.9寸液晶模组数据手册
- GT-GUI LCD 2.8寸液晶模组数据手册
- GT-GUI LCD 3.5寸液晶模组数据手册
- GUI-LCD开发板使用手册
- GT5GL128B标准GUI芯片规格书
- GT5GL64芯片产品规格书
高通字库交流群
GT-HMI交流群