【兆易GD32H759I-EVAL】 外接5寸LCD显示屏测试
[复制链接]
本帖最后由 TL-LED 于 2024-6-1 14:20 编辑
测试驱动手上的5寸分辨率800x480显示屏。
一、硬件电路
1.1、开发板LCD电路接口部分
1.2、设计的转接板
1.2.1、原理图部分
1.2.2、PCB效果图
1.2.3、实物图
二、驱动程序
2.1、显示屏时序参数
驱动程序主要是修改iLCD时序配置部分
看显示屏手册中,以下几个参数,在驱动程序中修改
2.2、程序部分
2.2.1、gd32h759i_lcd_eval.c
#include "gd32h759i_lcd_eval.h"
#include "gd32h759i_eval_exmc_sdram.h"
#include <string.h>
#define LCD_FRAME_BUFFER ((uint32_t)0xC0000000)
#define BUFFER_OFFSET ((uint32_t)0x7F800)
static font_struct *current_font;
static uint16_t current_textcolor = 0x0000;
static uint16_t current_backcolor = 0xFFFF;
static uint32_t current_framebuffer = LCD_FRAME_BUFFER;
static uint32_t current_layer = LCD_LAYER_BACKGROUND;
static void lcd_char_draw(uint16_t xpos, uint16_t ypos, const uint16_t *c);
static void lcd_vertical_char_draw(uint16_t xpos, uint16_t ypos, const uint16_t *c);
static void pixel_set(int16_t x, int16_t y);
#define HORIZONTAL_SYNCHRONOUS_PULSE 48
#define HORIZONTAL_BACK_PORCH 88
#define ACTIVE_WIDTH 800
#define HORIZONTAL_FRONT_PORCH 40
#define VERTICAL_SYNCHRONOUS_PULSE 3
#define VERTICAL_BACK_PORCH 32
#define ACTIVE_HEIGHT 480
#define VERTICAL_FRONT_PORCH 13
2.2.2、main.c
#include "main.h"
void cache_enable(void);
int main(void)
{
uint8_t x=0;
uint32_t sd=0;
uint32_t yd=0;
cache_enable();
systick_config();
init_usart(115200);
init_led();
gd_eval_lcd_init();
while(1)
{
switch(x)
{
case 0: lcd_clear(LCD_COLOR_WHITE); break;
case 1: lcd_clear(LCD_COLOR_RED ); break;
case 2: lcd_clear(LCD_COLOR_GREEN); break;
case 3: lcd_clear(LCD_COLOR_BLUE); break;
case 4: lcd_clear(LCD_COLOR_YELLOW); break;
case 5: lcd_clear(LCD_COLOR_MAGENTA); break;
case 6: lcd_clear(LCD_COLOR_BLACK); break;
}
x++;
if(x>6)
{
x=0;
}
lcd_string_display(1, "GD32H759 TLI LCD TEST!");
delay_1ms(1000);
}
}
void cache_enable(void)
{
/* enable i-cache */
SCB_EnableICache();
/* enable d-cache */
SCB_EnableDCache();
}
三、运行
运行视频:
5lcd
四、测试源码
|