Files
stm32-cnn/HARDWARE/LCD/ltdc.h
2024-11-01 22:38:48 +08:00

79 lines
2.9 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"
//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK STM32开发板
//LTDC驱动
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//创建日期:2016/7/13
//版本V1.2
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2014-2024
//All rights reserved
//********************************************************************************
//修改说明
//V1.1 20161026
//在LTDC_PanelID_Read函数加入delay解决-O2优化读ID可能出错的BUG
//V1.2 20170606
//新增10.1寸RGB屏的支持
//////////////////////////////////////////////////////////////////////////////////
//LCD LTDC重要参数集
typedef struct
{
u32 pwidth; //LCD面板的宽度,固定参数,不随显示方向改变,如果为0,说明没有任何RGB屏接入
u32 pheight; //LCD面板的高度,固定参数,不随显示方向改变
u16 hsw; //水平同步宽度
u16 vsw; //垂直同步宽度
u16 hbp; //水平后廊
u16 vbp; //垂直后廊
u16 hfp; //水平前廊
u16 vfp; //垂直前廊
u8 activelayer; //当前层编号:0/1
u8 dir; //0,竖屏;1,横屏;
u16 width; //LCD宽度
u16 height; //LCD高度
u32 pixsize; //每个像素所占字节数
}_ltdc_dev;
extern _ltdc_dev lcdltdc; //管理LCD LTDC参数
extern LTDC_HandleTypeDef LTDC_Handler; //LTDC句柄
extern DMA2D_HandleTypeDef DMA2D_Handler; //DMA2D句柄
#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_RGB565
//定义默认背景层颜色
#define LTDC_BACKLAYERCOLOR 0X00000000
//LCD帧缓冲区首地址,这里定义在SDRAM里面.
#define LCD_FRAME_BUF_ADDR 0XC0000000
void LTDC_Switch(u8 sw); //LTDC开关
void LTDC_Layer_Switch(u8 layerx,u8 sw); //层开关
void LTDC_Select_Layer(u8 layerx); //层选择
void LTDC_Display_Dir(u8 dir); //显示方向控制
void LTDC_Draw_Point(u16 x,u16 y,u32 color);//画点函数
u32 LTDC_Read_Point(u16 x,u16 y); //读点函数
void LTDC_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u32 color); //矩形单色填充函数
void LTDC_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color); //矩形彩色填充函数
void LTDC_Clear(u32 color); //清屏函数
u8 LTDC_Clk_Set(u32 pllsain,u32 pllsair,u32 pllsaidivr);//LTDC时钟配置
void LTDC_Layer_Window_Config(u8 layerx,u16 sx,u16 sy,u16 width,u16 height);//LTDC层窗口设置
void LTDC_Layer_Parameter_Config(u8 layerx,u32 bufaddr,u8 pixformat,u8 alpha,u8 alpha0,u8 bfac1,u8 bfac2,u32 bkcolor);//LTDC基本参数设置
u16 LTDC_PanelID_Read(void); //LCD ID读取函数
void LTDC_Init(void); //LTDC初始化函数
#endif