Sylvain Letreguilly / Mbed 2 deprecated cpelcddemo

Dependencies:   mbed

Committer:
agemio
Date:
Thu Nov 05 12:53:31 2015 +0000
Revision:
0:14f16771fe40
first commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
agemio 0:14f16771fe40 1 /**
agemio 0:14f16771fe40 2 ******************************************************************************
agemio 0:14f16771fe40 3 * @file stm32746g_discovery_lcd.h
agemio 0:14f16771fe40 4 * @author MCD Application Team
agemio 0:14f16771fe40 5 * @version V1.0.0
agemio 0:14f16771fe40 6 * @date 25-June-2015
agemio 0:14f16771fe40 7 * @brief This file contains the common defines and functions prototypes for
agemio 0:14f16771fe40 8 * the stm32746g_discovery_lcd.c driver.
agemio 0:14f16771fe40 9 ******************************************************************************
agemio 0:14f16771fe40 10 * @attention
agemio 0:14f16771fe40 11 *
agemio 0:14f16771fe40 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
agemio 0:14f16771fe40 13 *
agemio 0:14f16771fe40 14 * Redistribution and use in source and binary forms, with or without modification,
agemio 0:14f16771fe40 15 * are permitted provided that the following conditions are met:
agemio 0:14f16771fe40 16 * 1. Redistributions of source code must retain the above copyright notice,
agemio 0:14f16771fe40 17 * this list of conditions and the following disclaimer.
agemio 0:14f16771fe40 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
agemio 0:14f16771fe40 19 * this list of conditions and the following disclaimer in the documentation
agemio 0:14f16771fe40 20 * and/or other materials provided with the distribution.
agemio 0:14f16771fe40 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
agemio 0:14f16771fe40 22 * may be used to endorse or promote products derived from this software
agemio 0:14f16771fe40 23 * without specific prior written permission.
agemio 0:14f16771fe40 24 *
agemio 0:14f16771fe40 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
agemio 0:14f16771fe40 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
agemio 0:14f16771fe40 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
agemio 0:14f16771fe40 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
agemio 0:14f16771fe40 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
agemio 0:14f16771fe40 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
agemio 0:14f16771fe40 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
agemio 0:14f16771fe40 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
agemio 0:14f16771fe40 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
agemio 0:14f16771fe40 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
agemio 0:14f16771fe40 35 *
agemio 0:14f16771fe40 36 ******************************************************************************
agemio 0:14f16771fe40 37 */
agemio 0:14f16771fe40 38
agemio 0:14f16771fe40 39 /* Define to prevent recursive inclusion -------------------------------------*/
agemio 0:14f16771fe40 40 #ifndef __STM32746G_DISCOVERY_LCD_H
agemio 0:14f16771fe40 41 #define __STM32746G_DISCOVERY_LCD_H
agemio 0:14f16771fe40 42
agemio 0:14f16771fe40 43 #ifdef __cplusplus
agemio 0:14f16771fe40 44 extern "C" {
agemio 0:14f16771fe40 45 #endif
agemio 0:14f16771fe40 46
agemio 0:14f16771fe40 47 /* Includes ------------------------------------------------------------------*/
agemio 0:14f16771fe40 48 /* Include LCD component Driver */
agemio 0:14f16771fe40 49 /* LCD RK043FN48H-CT672B 4,3" 480x272 pixels */
agemio 0:14f16771fe40 50 #include "rk043fn48h.h"
agemio 0:14f16771fe40 51
agemio 0:14f16771fe40 52 /* Include SDRAM Driver */
agemio 0:14f16771fe40 53 #include "stm32746g_discovery_sdram.h"
agemio 0:14f16771fe40 54
agemio 0:14f16771fe40 55 #include "stm32746g_discovery.h"
agemio 0:14f16771fe40 56 #include "fonts.h"
agemio 0:14f16771fe40 57
agemio 0:14f16771fe40 58 /** @addtogroup BSP
agemio 0:14f16771fe40 59 * @{
agemio 0:14f16771fe40 60 */
agemio 0:14f16771fe40 61
agemio 0:14f16771fe40 62 /** @addtogroup STM32746G_DISCOVERY
agemio 0:14f16771fe40 63 * @{
agemio 0:14f16771fe40 64 */
agemio 0:14f16771fe40 65
agemio 0:14f16771fe40 66 /** @addtogroup STM32746G_DISCOVERY_LCD
agemio 0:14f16771fe40 67 * @{
agemio 0:14f16771fe40 68 */
agemio 0:14f16771fe40 69
agemio 0:14f16771fe40 70 /** @defgroup STM32746G_DISCOVERY_LCD_Exported_Types STM32746G_DISCOVERY_LCD Exported Types
agemio 0:14f16771fe40 71 * @{
agemio 0:14f16771fe40 72 */
agemio 0:14f16771fe40 73 typedef struct
agemio 0:14f16771fe40 74 {
agemio 0:14f16771fe40 75 uint32_t TextColor;
agemio 0:14f16771fe40 76 uint32_t BackColor;
agemio 0:14f16771fe40 77 sFONT *pFont;
agemio 0:14f16771fe40 78 }LCD_DrawPropTypeDef;
agemio 0:14f16771fe40 79
agemio 0:14f16771fe40 80 typedef struct
agemio 0:14f16771fe40 81 {
agemio 0:14f16771fe40 82 int16_t X;
agemio 0:14f16771fe40 83 int16_t Y;
agemio 0:14f16771fe40 84 }Point, * pPoint;
agemio 0:14f16771fe40 85
agemio 0:14f16771fe40 86 /**
agemio 0:14f16771fe40 87 * @brief Line mode structures definition
agemio 0:14f16771fe40 88 */
agemio 0:14f16771fe40 89 typedef enum
agemio 0:14f16771fe40 90 {
agemio 0:14f16771fe40 91 CENTER_MODE = 0x01, /* Center mode */
agemio 0:14f16771fe40 92 RIGHT_MODE = 0x02, /* Right mode */
agemio 0:14f16771fe40 93 LEFT_MODE = 0x03 /* Left mode */
agemio 0:14f16771fe40 94 }Text_AlignModeTypdef;
agemio 0:14f16771fe40 95
agemio 0:14f16771fe40 96 /**
agemio 0:14f16771fe40 97 * @}
agemio 0:14f16771fe40 98 */
agemio 0:14f16771fe40 99
agemio 0:14f16771fe40 100 /** @defgroup STM32746G_DISCOVERY_LCD_Exported_Constants STM32746G_DISCOVERY_LCD Exported Constants
agemio 0:14f16771fe40 101 * @{
agemio 0:14f16771fe40 102 */
agemio 0:14f16771fe40 103 #define MAX_LAYER_NUMBER ((uint32_t)2)
agemio 0:14f16771fe40 104
agemio 0:14f16771fe40 105 #define LCD_LayerCfgTypeDef LTDC_LayerCfgTypeDef
agemio 0:14f16771fe40 106
agemio 0:14f16771fe40 107 #define LTDC_ACTIVE_LAYER ((uint32_t)1) /* Layer 1 */
agemio 0:14f16771fe40 108 /**
agemio 0:14f16771fe40 109 * @brief LCD status structure definition
agemio 0:14f16771fe40 110 */
agemio 0:14f16771fe40 111 #define LCD_OK ((uint8_t)0x00)
agemio 0:14f16771fe40 112 #define LCD_ERROR ((uint8_t)0x01)
agemio 0:14f16771fe40 113 #define LCD_TIMEOUT ((uint8_t)0x02)
agemio 0:14f16771fe40 114
agemio 0:14f16771fe40 115 /**
agemio 0:14f16771fe40 116 * @brief LCD FB_StartAddress
agemio 0:14f16771fe40 117 */
agemio 0:14f16771fe40 118 #define LCD_FB_START_ADDRESS ((uint32_t)0xC0000000)
agemio 0:14f16771fe40 119
agemio 0:14f16771fe40 120 /**
agemio 0:14f16771fe40 121 * @brief LCD color
agemio 0:14f16771fe40 122 */
agemio 0:14f16771fe40 123 #define LCD_COLOR_BLUE ((uint32_t)0xFF0000FF)
agemio 0:14f16771fe40 124 #define LCD_COLOR_GREEN ((uint32_t)0xFF00FF00)
agemio 0:14f16771fe40 125 #define LCD_COLOR_RED ((uint32_t)0xFFFF0000)
agemio 0:14f16771fe40 126 #define LCD_COLOR_CYAN ((uint32_t)0xFF00FFFF)
agemio 0:14f16771fe40 127 #define LCD_COLOR_MAGENTA ((uint32_t)0xFFFF00FF)
agemio 0:14f16771fe40 128 #define LCD_COLOR_YELLOW ((uint32_t)0xFFFFFF00)
agemio 0:14f16771fe40 129 #define LCD_COLOR_LIGHTBLUE ((uint32_t)0xFF8080FF)
agemio 0:14f16771fe40 130 #define LCD_COLOR_LIGHTGREEN ((uint32_t)0xFF80FF80)
agemio 0:14f16771fe40 131 #define LCD_COLOR_LIGHTRED ((uint32_t)0xFFFF8080)
agemio 0:14f16771fe40 132 #define LCD_COLOR_LIGHTCYAN ((uint32_t)0xFF80FFFF)
agemio 0:14f16771fe40 133 #define LCD_COLOR_LIGHTMAGENTA ((uint32_t)0xFFFF80FF)
agemio 0:14f16771fe40 134 #define LCD_COLOR_LIGHTYELLOW ((uint32_t)0xFFFFFF80)
agemio 0:14f16771fe40 135 #define LCD_COLOR_DARKBLUE ((uint32_t)0xFF000080)
agemio 0:14f16771fe40 136 #define LCD_COLOR_DARKGREEN ((uint32_t)0xFF008000)
agemio 0:14f16771fe40 137 #define LCD_COLOR_DARKRED ((uint32_t)0xFF800000)
agemio 0:14f16771fe40 138 #define LCD_COLOR_DARKCYAN ((uint32_t)0xFF008080)
agemio 0:14f16771fe40 139 #define LCD_COLOR_DARKMAGENTA ((uint32_t)0xFF800080)
agemio 0:14f16771fe40 140 #define LCD_COLOR_DARKYELLOW ((uint32_t)0xFF808000)
agemio 0:14f16771fe40 141 #define LCD_COLOR_WHITE ((uint32_t)0xFFFFFFFF)
agemio 0:14f16771fe40 142 #define LCD_COLOR_LIGHTGRAY ((uint32_t)0xFFD3D3D3)
agemio 0:14f16771fe40 143 #define LCD_COLOR_GRAY ((uint32_t)0xFF808080)
agemio 0:14f16771fe40 144 #define LCD_COLOR_DARKGRAY ((uint32_t)0xFF404040)
agemio 0:14f16771fe40 145 #define LCD_COLOR_BLACK ((uint32_t)0xFF000000)
agemio 0:14f16771fe40 146 #define LCD_COLOR_BROWN ((uint32_t)0xFFA52A2A)
agemio 0:14f16771fe40 147 #define LCD_COLOR_ORANGE ((uint32_t)0xFFFFA500)
agemio 0:14f16771fe40 148 #define LCD_COLOR_TRANSPARENT ((uint32_t)0xFF000000)
agemio 0:14f16771fe40 149
agemio 0:14f16771fe40 150 /**
agemio 0:14f16771fe40 151 * @brief LCD default font
agemio 0:14f16771fe40 152 */
agemio 0:14f16771fe40 153 #define LCD_DEFAULT_FONT Font24
agemio 0:14f16771fe40 154
agemio 0:14f16771fe40 155 /**
agemio 0:14f16771fe40 156 * @brief LCD special pins
agemio 0:14f16771fe40 157 */
agemio 0:14f16771fe40 158 /* Display enable pin */
agemio 0:14f16771fe40 159 #define LCD_DISP_PIN GPIO_PIN_12
agemio 0:14f16771fe40 160 #define LCD_DISP_GPIO_PORT GPIOI
agemio 0:14f16771fe40 161 #define LCD_DISP_GPIO_CLK_ENABLE() __HAL_RCC_GPIOI_CLK_ENABLE()
agemio 0:14f16771fe40 162 #define LCD_DISP_GPIO_CLK_DISABLE() __HAL_RCC_GPIOI_CLK_DISABLE()
agemio 0:14f16771fe40 163
agemio 0:14f16771fe40 164 /* Backlight control pin */
agemio 0:14f16771fe40 165 #define LCD_BL_CTRL_PIN GPIO_PIN_3
agemio 0:14f16771fe40 166 #define LCD_BL_CTRL_GPIO_PORT GPIOK
agemio 0:14f16771fe40 167 #define LCD_BL_CTRL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOK_CLK_ENABLE()
agemio 0:14f16771fe40 168 #define LCD_BL_CTRL_GPIO_CLK_DISABLE() __HAL_RCC_GPIOK_CLK_DISABLE()
agemio 0:14f16771fe40 169
agemio 0:14f16771fe40 170 /**
agemio 0:14f16771fe40 171 * @}
agemio 0:14f16771fe40 172 */
agemio 0:14f16771fe40 173
agemio 0:14f16771fe40 174 /** @addtogroup STM32746G_DISCOVERY_LCD_Exported_Functions
agemio 0:14f16771fe40 175 * @{
agemio 0:14f16771fe40 176 */
agemio 0:14f16771fe40 177 uint8_t BSP_LCD_Init(void);
agemio 0:14f16771fe40 178 uint8_t BSP_LCD_DeInit(void);
agemio 0:14f16771fe40 179 uint32_t BSP_LCD_GetXSize(void);
agemio 0:14f16771fe40 180 uint32_t BSP_LCD_GetYSize(void);
agemio 0:14f16771fe40 181 void BSP_LCD_SetXSize(uint32_t imageWidthPixels);
agemio 0:14f16771fe40 182 void BSP_LCD_SetYSize(uint32_t imageHeightPixels);
agemio 0:14f16771fe40 183
agemio 0:14f16771fe40 184 /* Functions using the LTDC controller */
agemio 0:14f16771fe40 185 void BSP_LCD_LayerDefaultInit(uint16_t LayerIndex, uint32_t FrameBuffer);
agemio 0:14f16771fe40 186 void BSP_LCD_LayerRgb565Init(uint16_t LayerIndex, uint32_t FB_Address);
agemio 0:14f16771fe40 187 void BSP_LCD_SetTransparency(uint32_t LayerIndex, uint8_t Transparency);
agemio 0:14f16771fe40 188 void BSP_LCD_SetLayerAddress(uint32_t LayerIndex, uint32_t Address);
agemio 0:14f16771fe40 189 void BSP_LCD_SetColorKeying(uint32_t LayerIndex, uint32_t RGBValue);
agemio 0:14f16771fe40 190 void BSP_LCD_ResetColorKeying(uint32_t LayerIndex);
agemio 0:14f16771fe40 191 void BSP_LCD_SetLayerWindow(uint16_t LayerIndex, uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
agemio 0:14f16771fe40 192
agemio 0:14f16771fe40 193 void BSP_LCD_SelectLayer(uint32_t LayerIndex);
agemio 0:14f16771fe40 194 void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State);
agemio 0:14f16771fe40 195
agemio 0:14f16771fe40 196 void BSP_LCD_SetTextColor(uint32_t Color);
agemio 0:14f16771fe40 197 uint32_t BSP_LCD_GetTextColor(void);
agemio 0:14f16771fe40 198 void BSP_LCD_SetBackColor(uint32_t Color);
agemio 0:14f16771fe40 199 uint32_t BSP_LCD_GetBackColor(void);
agemio 0:14f16771fe40 200 void BSP_LCD_SetFont(sFONT *fonts);
agemio 0:14f16771fe40 201 sFONT *BSP_LCD_GetFont(void);
agemio 0:14f16771fe40 202
agemio 0:14f16771fe40 203 uint32_t BSP_LCD_ReadPixel(uint16_t Xpos, uint16_t Ypos);
agemio 0:14f16771fe40 204 void BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t pixel);
agemio 0:14f16771fe40 205 void BSP_LCD_Clear(uint32_t Color);
agemio 0:14f16771fe40 206 void BSP_LCD_ClearStringLine(uint32_t Line);
agemio 0:14f16771fe40 207 void BSP_LCD_DisplayStringAtLine(uint16_t Line, uint8_t *ptr);
agemio 0:14f16771fe40 208 void BSP_LCD_DisplayStringAt(uint16_t Xpos, uint16_t Ypos, uint8_t *Text, Text_AlignModeTypdef Mode);
agemio 0:14f16771fe40 209 void BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii);
agemio 0:14f16771fe40 210
agemio 0:14f16771fe40 211 void BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
agemio 0:14f16771fe40 212 void BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
agemio 0:14f16771fe40 213 void BSP_LCD_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
agemio 0:14f16771fe40 214 void BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
agemio 0:14f16771fe40 215 void BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
agemio 0:14f16771fe40 216 void BSP_LCD_DrawPolygon(pPoint Points, uint16_t PointCount);
agemio 0:14f16771fe40 217 void BSP_LCD_DrawEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
agemio 0:14f16771fe40 218 void BSP_LCD_DrawBitmap(uint32_t Xpos, uint32_t Ypos, uint8_t *pbmp);
agemio 0:14f16771fe40 219
agemio 0:14f16771fe40 220 void BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
agemio 0:14f16771fe40 221 void BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
agemio 0:14f16771fe40 222 void BSP_LCD_FillPolygon(pPoint Points, uint16_t PointCount);
agemio 0:14f16771fe40 223 void BSP_LCD_FillEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
agemio 0:14f16771fe40 224
agemio 0:14f16771fe40 225 void BSP_LCD_DisplayOff(void);
agemio 0:14f16771fe40 226 void BSP_LCD_DisplayOn(void);
agemio 0:14f16771fe40 227
agemio 0:14f16771fe40 228 /* These functions can be modified in case the current settings
agemio 0:14f16771fe40 229 need to be changed for specific application needs */
agemio 0:14f16771fe40 230 void BSP_LCD_MspInit(LTDC_HandleTypeDef *hltdc, void *Params);
agemio 0:14f16771fe40 231 void BSP_LCD_MspDeInit(LTDC_HandleTypeDef *hltdc, void *Params);
agemio 0:14f16771fe40 232 void BSP_LCD_ClockConfig(LTDC_HandleTypeDef *hltdc, void *Params);
agemio 0:14f16771fe40 233
agemio 0:14f16771fe40 234 /**
agemio 0:14f16771fe40 235 * @}
agemio 0:14f16771fe40 236 */
agemio 0:14f16771fe40 237
agemio 0:14f16771fe40 238 /**
agemio 0:14f16771fe40 239 * @}
agemio 0:14f16771fe40 240 */
agemio 0:14f16771fe40 241
agemio 0:14f16771fe40 242 /**
agemio 0:14f16771fe40 243 * @}
agemio 0:14f16771fe40 244 */
agemio 0:14f16771fe40 245
agemio 0:14f16771fe40 246 /**
agemio 0:14f16771fe40 247 * @}
agemio 0:14f16771fe40 248 */
agemio 0:14f16771fe40 249
agemio 0:14f16771fe40 250 #ifdef __cplusplus
agemio 0:14f16771fe40 251 }
agemio 0:14f16771fe40 252 #endif
agemio 0:14f16771fe40 253
agemio 0:14f16771fe40 254 #endif /* __STM32746G_DISCOVERY_LCD_H */
agemio 0:14f16771fe40 255
agemio 0:14f16771fe40 256 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/