-
Notifications
You must be signed in to change notification settings - Fork 1
/
stm32f429i_discovery_lcd.h
246 lines (215 loc) · 7.98 KB
/
stm32f429i_discovery_lcd.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
/**
******************************************************************************
* @file stm32f429i_discovery_lcd.h
* @author MCD Application Team
* @brief This file contains all the functions prototypes for the
* stm32f429i_discovery_lcd.c driver.
******************************************************************************
* @attention
*
* Copyright (c) 2017 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F429I_DISCOVERY_LCD_H
#define __STM32F429I_DISCOVERY_LCD_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f429i_discovery.h"
/* Include SDRAM Driver */
#include "stm32f429i_discovery_sdram.h"
#include "../../../Utilities/Fonts/fonts.h"
/* Include LCD component driver */
#include "../Components/ili9341/ili9341.h"
/** @addtogroup BSP
* @{
*/
/** @addtogroup STM32F429I_DISCOVERY
* @{
*/
/** @addtogroup STM32F429I_DISCOVERY_LCD
* @{
*/
/** @defgroup STM32F429I_DISCOVERY_LCD_Exported_Types STM32F429I DISCOVERY LCD Exported Types
* @{
*/
typedef enum
{
LCD_OK = 0,
LCD_ERROR = 1,
LCD_TIMEOUT = 2
} LCD_StatusTypeDef;
typedef struct
{
uint32_t TextColor;
uint32_t BackColor;
sFONT *pFont;
} LCD_DrawPropTypeDef;
typedef struct
{
int16_t X;
int16_t Y;
} Point, * pPoint;
/**
* @brief Line mode structures definition
*/
typedef enum
{
CENTER_MODE = 0x01, /* center mode */
RIGHT_MODE = 0x02, /* right mode */
LEFT_MODE = 0x03, /* left mode */
} Text_AlignModeTypdef;
/**
* @}
*/
/** @defgroup STM32F429I_DISCOVERY_LCD_Exported_Constants STM32F429I DISCOVERY LCD Exported Constants
* @{
*/
#define LCD_LayerCfgTypeDef LTDC_LayerCfgTypeDef
/**
* @brief LCD status structure definition
*/
#define MAX_LAYER_NUMBER 2
#define LCD_FRAME_BUFFER ((uint32_t)0xD0000000)
#define BUFFER_OFFSET ((uint32_t)0x50000)
/**
* @brief LCD color
*/
#define LCD_COLOR_BLUE 0xFF0000FF
#define LCD_COLOR_GREEN 0xFF00FF00
#define LCD_COLOR_RED 0xFFFF0000
#define LCD_COLOR_CYAN 0xFF00FFFF
#define LCD_COLOR_MAGENTA 0xFFFF00FF
#define LCD_COLOR_YELLOW 0xFFFFFF00
#define LCD_COLOR_LIGHTBLUE 0xFF8080FF
#define LCD_COLOR_LIGHTGREEN 0xFF80FF80
#define LCD_COLOR_LIGHTRED 0xFFFF8080
#define LCD_COLOR_LIGHTCYAN 0xFF80FFFF
#define LCD_COLOR_LIGHTMAGENTA 0xFFFF80FF
#define LCD_COLOR_LIGHTYELLOW 0xFFFFFF80
#define LCD_COLOR_DARKBLUE 0xFF000080
#define LCD_COLOR_DARKGREEN 0xFF008000
#define LCD_COLOR_DARKRED 0xFF800000
#define LCD_COLOR_DARKCYAN 0xFF008080
#define LCD_COLOR_DARKMAGENTA 0xFF800080
#define LCD_COLOR_DARKYELLOW 0xFF808000
#define LCD_COLOR_WHITE 0xFFFFFFFF
#define LCD_COLOR_LIGHTGRAY 0xFFD3D3D3
#define LCD_COLOR_GRAY 0xFF808080
#define LCD_COLOR_DARKGRAY 0xFF404040
#define LCD_COLOR_BLACK 0xFF000000
#define LCD_COLOR_BROWN 0xFFA52A2A
#define LCD_COLOR_ORANGE 0xFFFFA500
#define LCD_COLOR_TRANSPARENT 0xFF000000
/**
* @brief LCD default font
*/
#define LCD_DEFAULT_FONT Font24
/**
* @brief LCD Reload Types
*/
#define LCD_RELOAD_IMMEDIATE ((uint32_t)LTDC_SRCR_IMR)
#define LCD_RELOAD_VERTICAL_BLANKING ((uint32_t)LTDC_SRCR_VBR)
/**
* @brief LCD Layer
*/
#define LCD_BACKGROUND_LAYER 0x0000
#define LCD_FOREGROUND_LAYER 0x0001
/**
* @}
*/
/** @defgroup STM32F429I_DISCOVERY_LCD_Exported_Macros STM32F429I DISCOVERY LCD Exported Macros
* @{
*/
/**
* @brief LCD Pixel format
*/
#define LCD_PIXEL_FORMAT_ARGB8888 LTDC_PIXEL_FORMAT_ARGB8888
#define LCD_PIXEL_FORMAT_RGB888 LTDC_PIXEL_FORMAT_RGB888
#define LCD_PIXEL_FORMAT_RGB565 LTDC_PIXEL_FORMAT_RGB565
#define LCD_PIXEL_FORMAT_ARGB1555 LTDC_PIXEL_FORMAT_ARGB1555
#define LCD_PIXEL_FORMAT_ARGB4444 LTDC_PIXEL_FORMAT_ARGB4444
#define LCD_PIXEL_FORMAT_L8 LTDC_PIXEL_FORMAT_L8
#define LCD_PIXEL_FORMAT_AL44 LTDC_PIXEL_FORMAT_AL44
#define LCD_PIXEL_FORMAT_AL88 LTDC_PIXEL_FORMAT_AL88
/**
* @}
*/
/** @defgroup STM32F429I_DISCOVERY_LCD_Exported_Functions STM32F429I DISCOVERY LCD Exported Functions
* @{
*/
uint8_t BSP_LCD_Init(void);
uint32_t BSP_LCD_GetXSize(void);
uint32_t BSP_LCD_GetYSize(void);
/* functions using the LTDC controller */
void BSP_LCD_LayerDefaultInit(uint16_t LayerIndex, uint32_t FrameBuffer);
void BSP_LCD_SetTransparency(uint32_t LayerIndex, uint8_t Transparency);
void BSP_LCD_SetTransparency_NoReload(uint32_t LayerIndex, uint8_t Transparency);
void BSP_LCD_SetLayerAddress(uint32_t LayerIndex, uint32_t Address);
void BSP_LCD_SetLayerAddress_NoReload(uint32_t LayerIndex, uint32_t Address);
void BSP_LCD_SetColorKeying(uint32_t LayerIndex, uint32_t RGBValue);
void BSP_LCD_SetColorKeying_NoReload(uint32_t LayerIndex, uint32_t RGBValue);
void BSP_LCD_ResetColorKeying(uint32_t LayerIndex);
void BSP_LCD_ResetColorKeying_NoReload(uint32_t LayerIndex);
void BSP_LCD_SetLayerWindow(uint16_t LayerIndex, uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
void BSP_LCD_SetLayerWindow_NoReload(uint16_t LayerIndex, uint16_t Xpos, uint16_t Ypos, uint16_t Width,
uint16_t Height);
void BSP_LCD_SelectLayer(uint32_t LayerIndex);
void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState state);
void BSP_LCD_SetLayerVisible_NoReload(uint32_t LayerIndex, FunctionalState State);
void BSP_LCD_Relaod(uint32_t ReloadType);
void BSP_LCD_SetTextColor(uint32_t Color);
void BSP_LCD_SetBackColor(uint32_t Color);
uint32_t BSP_LCD_GetTextColor(void);
uint32_t BSP_LCD_GetBackColor(void);
void BSP_LCD_SetFont(sFONT *pFonts);
sFONT *BSP_LCD_GetFont(void);
uint32_t BSP_LCD_ReadPixel(uint16_t Xpos, uint16_t Ypos);
void BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t pixel);
void BSP_LCD_Clear(uint32_t Color);
void BSP_LCD_ClearStringLine(uint32_t Line);
void BSP_LCD_DisplayStringAtLine(uint16_t Line, uint8_t *ptr);
void BSP_LCD_DisplayStringAt(uint16_t X, uint16_t Y, uint8_t *pText, Text_AlignModeTypdef mode);
void BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii);
void BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
void BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
void BSP_LCD_DrawLine(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2);
void BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
void BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
void BSP_LCD_DrawPolygon(pPoint Points, uint16_t PointCount);
void BSP_LCD_DrawEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
void BSP_LCD_DrawBitmap(uint32_t X, uint32_t Y, uint8_t *pBmp);
void BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
void BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
void BSP_LCD_FillTriangle(uint16_t X1, uint16_t X2, uint16_t X3, uint16_t Y1, uint16_t Y2, uint16_t Y3);
void BSP_LCD_FillPolygon(pPoint Points, uint16_t PointCount);
void BSP_LCD_FillEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
void BSP_LCD_DisplayOff(void);
void BSP_LCD_DisplayOn(void);
/* This function can be modified in case the current settings need to be changed
for specific application needs */
void BSP_LCD_MspInit(void);
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __STM32F429I_DISCOVERY_LCD_H */