SPKT

Dependents:   Player

Committer:
phungductung
Date:
Fri Jun 07 05:06:42 2019 +0000
Revision:
0:4e245f4bc8ac
spkt

Who changed what in which revision?

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