ST / BSP_DISCO_F429ZI

Dependents:   2a 2b 2c 2d1 ... more

Committer:
bcostm
Date:
Fri Mar 18 12:59:18 2016 +0000
Revision:
0:de9280158372
Add support of eeprom

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 0:de9280158372 1 /**
bcostm 0:de9280158372 2 ******************************************************************************
bcostm 0:de9280158372 3 * @file stm32f429i_discovery_lcd.h
bcostm 0:de9280158372 4 * @author MCD Application Team
bcostm 0:de9280158372 5 * @version V2.1.2
bcostm 0:de9280158372 6 * @date 02-March-2015
bcostm 0:de9280158372 7 * @brief This file contains all the functions prototypes for the
bcostm 0:de9280158372 8 * stm32f429i_discovery_lcd.c driver.
bcostm 0:de9280158372 9 ******************************************************************************
bcostm 0:de9280158372 10 * @attention
bcostm 0:de9280158372 11 *
bcostm 0:de9280158372 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
bcostm 0:de9280158372 13 *
bcostm 0:de9280158372 14 * Redistribution and use in source and binary forms, with or without modification,
bcostm 0:de9280158372 15 * are permitted provided that the following conditions are met:
bcostm 0:de9280158372 16 * 1. Redistributions of source code must retain the above copyright notice,
bcostm 0:de9280158372 17 * this list of conditions and the following disclaimer.
bcostm 0:de9280158372 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
bcostm 0:de9280158372 19 * this list of conditions and the following disclaimer in the documentation
bcostm 0:de9280158372 20 * and/or other materials provided with the distribution.
bcostm 0:de9280158372 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
bcostm 0:de9280158372 22 * may be used to endorse or promote products derived from this software
bcostm 0:de9280158372 23 * without specific prior written permission.
bcostm 0:de9280158372 24 *
bcostm 0:de9280158372 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
bcostm 0:de9280158372 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
bcostm 0:de9280158372 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
bcostm 0:de9280158372 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
bcostm 0:de9280158372 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
bcostm 0:de9280158372 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
bcostm 0:de9280158372 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
bcostm 0:de9280158372 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
bcostm 0:de9280158372 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
bcostm 0:de9280158372 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
bcostm 0:de9280158372 35 *
bcostm 0:de9280158372 36 ******************************************************************************
bcostm 0:de9280158372 37 */
bcostm 0:de9280158372 38
bcostm 0:de9280158372 39 /* Define to prevent recursive inclusion -------------------------------------*/
bcostm 0:de9280158372 40 #ifndef __STM32F429I_DISCOVERY_LCD_H
bcostm 0:de9280158372 41 #define __STM32F429I_DISCOVERY_LCD_H
bcostm 0:de9280158372 42
bcostm 0:de9280158372 43 #ifdef __cplusplus
bcostm 0:de9280158372 44 extern "C" {
bcostm 0:de9280158372 45 #endif
bcostm 0:de9280158372 46
bcostm 0:de9280158372 47 /* Includes ------------------------------------------------------------------*/
bcostm 0:de9280158372 48 #include "stm32f429i_discovery.h"
bcostm 0:de9280158372 49 /* Include SDRAM Driver */
bcostm 0:de9280158372 50 #include "stm32f429i_discovery_sdram.h"
bcostm 0:de9280158372 51 #include "../Fonts/fonts.h"
bcostm 0:de9280158372 52 /* Include LCD component driver */
bcostm 0:de9280158372 53 #include "../Components/ili9341/ili9341.h"
bcostm 0:de9280158372 54
bcostm 0:de9280158372 55 /** @addtogroup BSP
bcostm 0:de9280158372 56 * @{
bcostm 0:de9280158372 57 */
bcostm 0:de9280158372 58
bcostm 0:de9280158372 59 /** @addtogroup STM32F429I_DISCOVERY
bcostm 0:de9280158372 60 * @{
bcostm 0:de9280158372 61 */
bcostm 0:de9280158372 62
bcostm 0:de9280158372 63 /** @defgroup STM32F429I_DISCOVERY_LCD
bcostm 0:de9280158372 64 * @{
bcostm 0:de9280158372 65 */
bcostm 0:de9280158372 66
bcostm 0:de9280158372 67 /** @defgroup STM32F429I_DISCOVERY_LCD_Exported_Types
bcostm 0:de9280158372 68 * @{
bcostm 0:de9280158372 69 */
bcostm 0:de9280158372 70 typedef enum
bcostm 0:de9280158372 71 {
bcostm 0:de9280158372 72 LCD_OK = 0,
bcostm 0:de9280158372 73 LCD_ERROR = 1,
bcostm 0:de9280158372 74 LCD_TIMEOUT = 2
bcostm 0:de9280158372 75 }LCD_StatusTypeDef;
bcostm 0:de9280158372 76
bcostm 0:de9280158372 77 typedef struct
bcostm 0:de9280158372 78 {
bcostm 0:de9280158372 79 uint32_t TextColor;
bcostm 0:de9280158372 80 uint32_t BackColor;
bcostm 0:de9280158372 81 sFONT *pFont;
bcostm 0:de9280158372 82 }LCD_DrawPropTypeDef;
bcostm 0:de9280158372 83
bcostm 0:de9280158372 84 typedef struct
bcostm 0:de9280158372 85 {
bcostm 0:de9280158372 86 int16_t X;
bcostm 0:de9280158372 87 int16_t Y;
bcostm 0:de9280158372 88 } Point, * pPoint;
bcostm 0:de9280158372 89
bcostm 0:de9280158372 90 /**
bcostm 0:de9280158372 91 * @brief Line mode structures definition
bcostm 0:de9280158372 92 */
bcostm 0:de9280158372 93 typedef enum
bcostm 0:de9280158372 94 {
bcostm 0:de9280158372 95 CENTER_MODE = 0x01, /* center mode */
bcostm 0:de9280158372 96 RIGHT_MODE = 0x02, /* right mode */
bcostm 0:de9280158372 97 LEFT_MODE = 0x03, /* left mode */
bcostm 0:de9280158372 98 }Text_AlignModeTypdef;
bcostm 0:de9280158372 99 /**
bcostm 0:de9280158372 100 * @}
bcostm 0:de9280158372 101 */
bcostm 0:de9280158372 102
bcostm 0:de9280158372 103 /** @defgroup STM32F429I_DISCOVERY_LCD_Exported_Constants
bcostm 0:de9280158372 104 * @{
bcostm 0:de9280158372 105 */
bcostm 0:de9280158372 106 #define LCD_LayerCfgTypeDef LTDC_LayerCfgTypeDef
bcostm 0:de9280158372 107
bcostm 0:de9280158372 108 /**
bcostm 0:de9280158372 109 * @brief LCD status structure definition
bcostm 0:de9280158372 110 */
bcostm 0:de9280158372 111 #define MAX_LAYER_NUMBER 2
bcostm 0:de9280158372 112 #define LCD_FRAME_BUFFER ((uint32_t)0xD0000000)
bcostm 0:de9280158372 113 #define BUFFER_OFFSET ((uint32_t)0x50000)
bcostm 0:de9280158372 114
bcostm 0:de9280158372 115 /**
bcostm 0:de9280158372 116 * @brief LCD color
bcostm 0:de9280158372 117 */
bcostm 0:de9280158372 118 #define LCD_COLOR_BLUE 0xFF0000FF
bcostm 0:de9280158372 119 #define LCD_COLOR_GREEN 0xFF00FF00
bcostm 0:de9280158372 120 #define LCD_COLOR_RED 0xFFFF0000
bcostm 0:de9280158372 121 #define LCD_COLOR_CYAN 0xFF00FFFF
bcostm 0:de9280158372 122 #define LCD_COLOR_MAGENTA 0xFFFF00FF
bcostm 0:de9280158372 123 #define LCD_COLOR_YELLOW 0xFFFFFF00
bcostm 0:de9280158372 124 #define LCD_COLOR_LIGHTBLUE 0xFF8080FF
bcostm 0:de9280158372 125 #define LCD_COLOR_LIGHTGREEN 0xFF80FF80
bcostm 0:de9280158372 126 #define LCD_COLOR_LIGHTRED 0xFFFF8080
bcostm 0:de9280158372 127 #define LCD_COLOR_LIGHTCYAN 0xFF80FFFF
bcostm 0:de9280158372 128 #define LCD_COLOR_LIGHTMAGENTA 0xFFFF80FF
bcostm 0:de9280158372 129 #define LCD_COLOR_LIGHTYELLOW 0xFFFFFF80
bcostm 0:de9280158372 130 #define LCD_COLOR_DARKBLUE 0xFF000080
bcostm 0:de9280158372 131 #define LCD_COLOR_DARKGREEN 0xFF008000
bcostm 0:de9280158372 132 #define LCD_COLOR_DARKRED 0xFF800000
bcostm 0:de9280158372 133 #define LCD_COLOR_DARKCYAN 0xFF008080
bcostm 0:de9280158372 134 #define LCD_COLOR_DARKMAGENTA 0xFF800080
bcostm 0:de9280158372 135 #define LCD_COLOR_DARKYELLOW 0xFF808000
bcostm 0:de9280158372 136 #define LCD_COLOR_WHITE 0xFFFFFFFF
bcostm 0:de9280158372 137 #define LCD_COLOR_LIGHTGRAY 0xFFD3D3D3
bcostm 0:de9280158372 138 #define LCD_COLOR_GRAY 0xFF808080
bcostm 0:de9280158372 139 #define LCD_COLOR_DARKGRAY 0xFF404040
bcostm 0:de9280158372 140 #define LCD_COLOR_BLACK 0xFF000000
bcostm 0:de9280158372 141 #define LCD_COLOR_BROWN 0xFFA52A2A
bcostm 0:de9280158372 142 #define LCD_COLOR_ORANGE 0xFFFFA500
bcostm 0:de9280158372 143 #define LCD_COLOR_TRANSPARENT 0xFF000000
bcostm 0:de9280158372 144 /**
bcostm 0:de9280158372 145 * @brief LCD default font
bcostm 0:de9280158372 146 */
bcostm 0:de9280158372 147 #define LCD_DEFAULT_FONT Font24
bcostm 0:de9280158372 148
bcostm 0:de9280158372 149 /**
bcostm 0:de9280158372 150 * @brief LCD Layer
bcostm 0:de9280158372 151 */
bcostm 0:de9280158372 152 #define LCD_BACKGROUND_LAYER 0x0000
bcostm 0:de9280158372 153 #define LCD_FOREGROUND_LAYER 0x0001
bcostm 0:de9280158372 154
bcostm 0:de9280158372 155 /**
bcostm 0:de9280158372 156 * @}
bcostm 0:de9280158372 157 */
bcostm 0:de9280158372 158
bcostm 0:de9280158372 159 /** @defgroup STM32F429I_DISCOVERY_LCD_Exported_Macros
bcostm 0:de9280158372 160 * @{
bcostm 0:de9280158372 161 */
bcostm 0:de9280158372 162 /**
bcostm 0:de9280158372 163 * @brief LCD Pixel format
bcostm 0:de9280158372 164 */
bcostm 0:de9280158372 165 #define LCD_PIXEL_FORMAT_ARGB8888 LTDC_PIXEL_FORMAT_ARGB8888
bcostm 0:de9280158372 166 #define LCD_PIXEL_FORMAT_RGB888 LTDC_PIXEL_FORMAT_RGB888
bcostm 0:de9280158372 167 #define LCD_PIXEL_FORMAT_RGB565 LTDC_PIXEL_FORMAT_RGB565
bcostm 0:de9280158372 168 #define LCD_PIXEL_FORMAT_ARGB1555 LTDC_PIXEL_FORMAT_ARGB1555
bcostm 0:de9280158372 169 #define LCD_PIXEL_FORMAT_ARGB4444 LTDC_PIXEL_FORMAT_ARGB4444
bcostm 0:de9280158372 170 #define LCD_PIXEL_FORMAT_L8 LTDC_PIXEL_FORMAT_L8
bcostm 0:de9280158372 171 #define LCD_PIXEL_FORMAT_AL44 LTDC_PIXEL_FORMAT_AL44
bcostm 0:de9280158372 172 #define LCD_PIXEL_FORMAT_AL88 LTDC_PIXEL_FORMAT_AL88
bcostm 0:de9280158372 173 /**
bcostm 0:de9280158372 174 * @}
bcostm 0:de9280158372 175 */
bcostm 0:de9280158372 176
bcostm 0:de9280158372 177 /** @defgroup STM32F429I_DISCOVERY_LCD_Exported_Functions
bcostm 0:de9280158372 178 * @{
bcostm 0:de9280158372 179 */
bcostm 0:de9280158372 180 uint8_t BSP_LCD_Init(void);
bcostm 0:de9280158372 181 uint32_t BSP_LCD_GetXSize(void);
bcostm 0:de9280158372 182 uint32_t BSP_LCD_GetYSize(void);
bcostm 0:de9280158372 183
bcostm 0:de9280158372 184 /* functions using the LTDC controller */
bcostm 0:de9280158372 185 void BSP_LCD_LayerDefaultInit(uint16_t LayerIndex, uint32_t FrameBuffer);
bcostm 0:de9280158372 186 void BSP_LCD_SetTransparency(uint32_t LayerIndex, uint8_t Transparency);
bcostm 0:de9280158372 187 void BSP_LCD_SetLayerAddress(uint32_t LayerIndex, uint32_t Address);
bcostm 0:de9280158372 188 void BSP_LCD_SetColorKeying(uint32_t LayerIndex, uint32_t RGBValue);
bcostm 0:de9280158372 189 void BSP_LCD_ResetColorKeying(uint32_t LayerIndex);
bcostm 0:de9280158372 190 void BSP_LCD_SetLayerWindow(uint16_t LayerIndex, uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
bcostm 0:de9280158372 191 void BSP_LCD_SelectLayer(uint32_t LayerIndex);
bcostm 0:de9280158372 192 void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState state);
bcostm 0:de9280158372 193
bcostm 0:de9280158372 194 void BSP_LCD_SetTextColor(uint32_t Color);
bcostm 0:de9280158372 195 void BSP_LCD_SetBackColor(uint32_t Color);
bcostm 0:de9280158372 196 uint32_t BSP_LCD_GetTextColor(void);
bcostm 0:de9280158372 197 uint32_t BSP_LCD_GetBackColor(void);
bcostm 0:de9280158372 198 void BSP_LCD_SetFont(sFONT *pFonts);
bcostm 0:de9280158372 199 sFONT *BSP_LCD_GetFont(void);
bcostm 0:de9280158372 200
bcostm 0:de9280158372 201 uint32_t BSP_LCD_ReadPixel(uint16_t Xpos, uint16_t Ypos);
bcostm 0:de9280158372 202 void BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t pixel);
bcostm 0:de9280158372 203 void BSP_LCD_Clear(uint32_t Color);
bcostm 0:de9280158372 204 void BSP_LCD_ClearStringLine(uint32_t Line);
bcostm 0:de9280158372 205 void BSP_LCD_DisplayStringAtLine(uint16_t Line, uint8_t *ptr);
bcostm 0:de9280158372 206 void BSP_LCD_DisplayStringAt(uint16_t X, uint16_t Y, uint8_t *pText, Text_AlignModeTypdef mode);
bcostm 0:de9280158372 207 void BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii);
bcostm 0:de9280158372 208
bcostm 0:de9280158372 209 void BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
bcostm 0:de9280158372 210 void BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
bcostm 0:de9280158372 211 void BSP_LCD_DrawLine(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2);
bcostm 0:de9280158372 212 void BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
bcostm 0:de9280158372 213 void BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
bcostm 0:de9280158372 214 void BSP_LCD_DrawPolygon(pPoint Points, uint16_t PointCount);
bcostm 0:de9280158372 215 void BSP_LCD_DrawEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
bcostm 0:de9280158372 216 void BSP_LCD_DrawBitmap(uint32_t X, uint32_t Y, uint8_t *pBmp);
bcostm 0:de9280158372 217
bcostm 0:de9280158372 218 void BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
bcostm 0:de9280158372 219 void BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
bcostm 0:de9280158372 220 void BSP_LCD_FillTriangle(uint16_t X1, uint16_t X2, uint16_t X3, uint16_t Y1, uint16_t Y2, uint16_t Y3);
bcostm 0:de9280158372 221 void BSP_LCD_FillPolygon(pPoint Points, uint16_t PointCount);
bcostm 0:de9280158372 222 void BSP_LCD_FillEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
bcostm 0:de9280158372 223
bcostm 0:de9280158372 224 void BSP_LCD_DisplayOff(void);
bcostm 0:de9280158372 225 void BSP_LCD_DisplayOn(void);
bcostm 0:de9280158372 226
bcostm 0:de9280158372 227 /**
bcostm 0:de9280158372 228 * @}
bcostm 0:de9280158372 229 */
bcostm 0:de9280158372 230
bcostm 0:de9280158372 231 /**
bcostm 0:de9280158372 232 * @}
bcostm 0:de9280158372 233 */
bcostm 0:de9280158372 234
bcostm 0:de9280158372 235 /**
bcostm 0:de9280158372 236 * @}
bcostm 0:de9280158372 237 */
bcostm 0:de9280158372 238
bcostm 0:de9280158372 239 /**
bcostm 0:de9280158372 240 * @}
bcostm 0:de9280158372 241 */
bcostm 0:de9280158372 242
bcostm 0:de9280158372 243 #ifdef __cplusplus
bcostm 0:de9280158372 244 }
bcostm 0:de9280158372 245 #endif
bcostm 0:de9280158372 246
bcostm 0:de9280158372 247 #endif /* __STM32F429I_DISCOVERY_LCD_H */
bcostm 0:de9280158372 248
bcostm 0:de9280158372 249 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/