Files
FireAlarmCtrlCn/FW/Core/my_src/ltdc_drv.h
2026-04-06 19:02:09 +08:00

77 lines
3.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef _LCD_H
#define _LCD_H
//#include "sys.h"
#include "main.h"
//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK STM32H7开发板
//LCD驱动代码
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//创建日期:2017/8/12
//版本V1.0
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2014-2024
//All rights reserved
//////////////////////////////////////////////////////////////////////////////////
#define LCD_LED(n) (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET)) //LCD背光PD13 //LCD背光PD13
//LCD LTDC重要参数集
typedef struct
{
unsigned int pwidth; //LCD面板的宽度,固定参数,不随显示方向改变,如果为0,说明没有任何RGB屏接入
unsigned int pheight; //LCD面板的高度,固定参数,不随显示方向改变
unsigned short hsw; //水平同步宽度
unsigned short vsw; //垂直同步宽度
unsigned short hbp; //水平后廊
unsigned short vbp; //垂直后廊
unsigned short hfp; //水平前廊
unsigned short vfp; //垂直前廊
unsigned char activelayer; //当前层编号:0/1
unsigned char dir; //0,竖屏;1,横屏;
unsigned short width; //LCD宽度
unsigned short height; //LCD高度
unsigned int pixsize; //每个像素所占字节数
}_ltdc_dev;
extern _ltdc_dev lcdltdc; //管理LCD LTDC参数
extern LTDC_HandleTypeDef LTDC_Handler; //LTDC句柄
extern unsigned int *ltdc_framebuf[2]; //LTDC LCD帧缓存数组指针,必须指向对应大小的内存区域
#define LCD_PIXEL_FORMAT_ARGB8888 0X00
#define LCD_PIXEL_FORMAT_RGB888 0X01
#define LCD_PIXEL_FORMAT_RGB565 0X02
#define LCD_PIXEL_FORMAT_ARGB1555 0X03
#define LCD_PIXEL_FORMAT_ARGB4444 0X04
#define LCD_PIXEL_FORMAT_L8 0X05
#define LCD_PIXEL_FORMAT_AL44 0X06
#define LCD_PIXEL_FORMAT_AL88 0X07
///////////////////////////////////////////////////////////////////////
//用户修改配置部分:
//定义颜色像素格式,一般用RGB565
#define LCD_PIXFORMAT LCD_PIXEL_FORMAT_ARGB8888
//定义默认背景层颜色
#define LTDC_BACKLAYERCOLOR 0X00000000
//LCD帧缓冲区首地址,这里定义在SDRAM里面.
#define LCD_FRAME_BUF_ADDR 0XC0000000
#define LCD_FRAME_BUF_2_ADDR 0XC0177000
void LTDC_Switch(unsigned char sw); //LTDC开关
void LTDC_Layer_Switch(unsigned char layerx,unsigned char sw); //层开关
void LTDC_Select_Layer(unsigned char layerx); //层选择
void LTDC_Display_Dir(unsigned char dir); //显示方向控制
void LTDC_Draw_Point(unsigned short x,unsigned short y,unsigned int color);//画点函数
unsigned int LTDC_Read_Point(unsigned short x,unsigned short y); //读点函数
void LTDC_Fill(unsigned short sx,unsigned short sy,unsigned short ex,unsigned short ey,unsigned int color); //矩形单色填充函数
void LTDC_Color_Fill(unsigned short sx,unsigned short sy,unsigned short ex,unsigned short ey,unsigned short *color); //矩形彩色填充函数
void LTDC_Clear(unsigned int color); //清屏函数
unsigned char LTDC_Clk_Set(unsigned int pll3m,unsigned int pll3n,unsigned int pll3r);//LTDC时钟配置
//unsigned char LTDC_Clk_Set(unsigned int pllsain,unsigned int pllsair,unsigned int pllsaidivr);//LTDC时钟配置
void LTDC_Layer_Window_Config(unsigned char layerx,unsigned short sx,unsigned short sy,unsigned short width,unsigned short height);//LTDC层窗口设置
void LTDC_Layer_Parameter_Config(unsigned char layerx,unsigned int bufaddr,unsigned char pixformat,unsigned char alpha,unsigned char alpha0,unsigned char bfac1,unsigned char bfac2,unsigned int bkcolor);//LTDC基本参数设置
unsigned short LTDC_PanelID_Read(void); //LCD ID读取函数
void LTDC_Init(void); //LTDC初始化函数
#endif