Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of BSP_DISCO_F746NG by
stm32746g_discovery_lcd.h
00001 /** 00002 ****************************************************************************** 00003 * @file stm32746g_discovery_lcd.h 00004 * @author MCD Application Team 00005 * @version V1.0.0 00006 * @date 25-June-2015 00007 * @brief This file contains the common defines and functions prototypes for 00008 * the stm32746g_discovery_lcd.c driver. 00009 ****************************************************************************** 00010 * @attention 00011 * 00012 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00013 * 00014 * Redistribution and use in source and binary forms, with or without modification, 00015 * are permitted provided that the following conditions are met: 00016 * 1. Redistributions of source code must retain the above copyright notice, 00017 * this list of conditions and the following disclaimer. 00018 * 2. Redistributions in binary form must reproduce the above copyright notice, 00019 * this list of conditions and the following disclaimer in the documentation 00020 * and/or other materials provided with the distribution. 00021 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00022 * may be used to endorse or promote products derived from this software 00023 * without specific prior written permission. 00024 * 00025 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00026 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00027 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00028 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00029 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00030 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00031 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00032 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00033 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00034 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00035 * 00036 ****************************************************************************** 00037 */ 00038 00039 /* Define to prevent recursive inclusion -------------------------------------*/ 00040 #ifndef __STM32746G_DISCOVERY_LCD_H 00041 #define __STM32746G_DISCOVERY_LCD_H 00042 00043 #ifdef __cplusplus 00044 extern "C" { 00045 #endif 00046 00047 /* Includes ------------------------------------------------------------------*/ 00048 /* Include LCD component Driver */ 00049 /* LCD RK043FN48H-CT672B 4,3" 480x272 pixels */ 00050 #include "rk043fn48h.h" 00051 00052 /* Include SDRAM Driver */ 00053 #include "stm32746g_discovery_sdram.h" 00054 00055 #include "stm32746g_discovery.h" 00056 #include "fonts.h" 00057 00058 /** @addtogroup BSP 00059 * @{ 00060 */ 00061 00062 /** @addtogroup STM32746G_DISCOVERY 00063 * @{ 00064 */ 00065 00066 /** @addtogroup STM32746G_DISCOVERY_LCD 00067 * @{ 00068 */ 00069 00070 /** @defgroup STM32746G_DISCOVERY_LCD_Exported_Types STM32746G_DISCOVERY_LCD Exported Types 00071 * @{ 00072 */ 00073 typedef struct 00074 { 00075 uint32_t TextColor; 00076 uint32_t BackColor; 00077 sFONT *pFont; 00078 }LCD_DrawPropTypeDef; 00079 00080 typedef struct 00081 { 00082 int16_t X; 00083 int16_t Y; 00084 }Point, * pPoint; 00085 00086 /** 00087 * @brief Line mode structures definition 00088 */ 00089 typedef enum 00090 { 00091 CENTER_MODE = 0x01, /* Center mode */ 00092 RIGHT_MODE = 0x02, /* Right mode */ 00093 LEFT_MODE = 0x03 /* Left mode */ 00094 }Text_AlignModeTypdef; 00095 00096 /** 00097 * @} 00098 */ 00099 00100 /** @defgroup STM32746G_DISCOVERY_LCD_Exported_Constants STM32746G_DISCOVERY_LCD Exported Constants 00101 * @{ 00102 */ 00103 #define MAX_LAYER_NUMBER ((uint32_t)2) 00104 00105 #define LCD_LayerCfgTypeDef LTDC_LayerCfgTypeDef 00106 00107 #define LTDC_ACTIVE_LAYER ((uint32_t)1) /* Layer 1 */ 00108 /** 00109 * @brief LCD status structure definition 00110 */ 00111 #define LCD_OK ((uint8_t)0x00) 00112 #define LCD_ERROR ((uint8_t)0x01) 00113 #define LCD_TIMEOUT ((uint8_t)0x02) 00114 00115 /** 00116 * @brief LCD FB_StartAddress 00117 */ 00118 #define LCD_FB_START_ADDRESS ((uint32_t)0xC0000000) 00119 00120 /** 00121 * @brief LCD color 00122 */ 00123 #define LCD_COLOR_BLUE ((uint32_t)0xFF0000FF) 00124 #define LCD_COLOR_GREEN ((uint32_t)0xFF00FF00) 00125 #define LCD_COLOR_RED ((uint32_t)0xFFFF0000) 00126 #define LCD_COLOR_CYAN ((uint32_t)0xFF00FFFF) 00127 #define LCD_COLOR_MAGENTA ((uint32_t)0xFFFF00FF) 00128 #define LCD_COLOR_YELLOW ((uint32_t)0xFFFFFF00) 00129 #define LCD_COLOR_LIGHTBLUE ((uint32_t)0xFF8080FF) 00130 #define LCD_COLOR_LIGHTGREEN ((uint32_t)0xFF80FF80) 00131 #define LCD_COLOR_LIGHTRED ((uint32_t)0xFFFF8080) 00132 #define LCD_COLOR_LIGHTCYAN ((uint32_t)0xFF80FFFF) 00133 #define LCD_COLOR_LIGHTMAGENTA ((uint32_t)0xFFFF80FF) 00134 #define LCD_COLOR_LIGHTYELLOW ((uint32_t)0xFFFFFF80) 00135 #define LCD_COLOR_DARKBLUE ((uint32_t)0xFF000080) 00136 #define LCD_COLOR_DARKGREEN ((uint32_t)0xFF008000) 00137 #define LCD_COLOR_DARKRED ((uint32_t)0xFF800000) 00138 #define LCD_COLOR_DARKCYAN ((uint32_t)0xFF008080) 00139 #define LCD_COLOR_DARKMAGENTA ((uint32_t)0xFF800080) 00140 #define LCD_COLOR_DARKYELLOW ((uint32_t)0xFF808000) 00141 #define LCD_COLOR_WHITE ((uint32_t)0xFFFFFFFF) 00142 #define LCD_COLOR_LIGHTGRAY ((uint32_t)0xFFD3D3D3) 00143 #define LCD_COLOR_GRAY ((uint32_t)0xFF808080) 00144 #define LCD_COLOR_DARKGRAY ((uint32_t)0xFF404040) 00145 #define LCD_COLOR_BLACK ((uint32_t)0xFF000000) 00146 #define LCD_COLOR_BROWN ((uint32_t)0xFFA52A2A) 00147 #define LCD_COLOR_ORANGE ((uint32_t)0xFFFFA500) 00148 #define LCD_COLOR_TRANSPARENT ((uint32_t)0xFF000000) 00149 00150 /** 00151 * @brief LCD default font 00152 */ 00153 #define LCD_DEFAULT_FONT Font24 00154 00155 /** 00156 * @brief LCD special pins 00157 */ 00158 /* Display enable pin */ 00159 #define LCD_DISP_PIN GPIO_PIN_12 00160 #define LCD_DISP_GPIO_PORT GPIOI 00161 #define LCD_DISP_GPIO_CLK_ENABLE() __HAL_RCC_GPIOI_CLK_ENABLE() 00162 #define LCD_DISP_GPIO_CLK_DISABLE() __HAL_RCC_GPIOI_CLK_DISABLE() 00163 00164 /* Backlight control pin */ 00165 #define LCD_BL_CTRL_PIN GPIO_PIN_3 00166 #define LCD_BL_CTRL_GPIO_PORT GPIOK 00167 #define LCD_BL_CTRL_GPIO_CLK_ENABLE() __HAL_RCC_GPIOK_CLK_ENABLE() 00168 #define LCD_BL_CTRL_GPIO_CLK_DISABLE() __HAL_RCC_GPIOK_CLK_DISABLE() 00169 00170 /** 00171 * @} 00172 */ 00173 00174 /** @addtogroup STM32746G_DISCOVERY_LCD_Exported_Functions 00175 * @{ 00176 */ 00177 uint8_t BSP_LCD_Init(void); 00178 uint8_t BSP_LCD_DeInit(void); 00179 uint32_t BSP_LCD_GetXSize(void); 00180 uint32_t BSP_LCD_GetYSize(void); 00181 void BSP_LCD_SetXSize(uint32_t imageWidthPixels); 00182 void BSP_LCD_SetYSize(uint32_t imageHeightPixels); 00183 00184 /* Functions using the LTDC controller */ 00185 void BSP_LCD_LayerDefaultInit(uint16_t LayerIndex, uint32_t FrameBuffer); 00186 void BSP_LCD_LayerRgb565Init(uint16_t LayerIndex, uint32_t FB_Address); 00187 void BSP_LCD_SetTransparency(uint32_t LayerIndex, uint8_t Transparency); 00188 void BSP_LCD_SetLayerAddress(uint32_t LayerIndex, uint32_t Address); 00189 void BSP_LCD_SetColorKeying(uint32_t LayerIndex, uint32_t RGBValue); 00190 void BSP_LCD_ResetColorKeying(uint32_t LayerIndex); 00191 void BSP_LCD_SetLayerWindow(uint16_t LayerIndex, uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height); 00192 00193 void BSP_LCD_SelectLayer(uint32_t LayerIndex); 00194 void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State); 00195 00196 void BSP_LCD_SetTextColor(uint32_t Color); 00197 uint32_t BSP_LCD_GetTextColor(void); 00198 void BSP_LCD_SetBackColor(uint32_t Color); 00199 uint32_t BSP_LCD_GetBackColor(void); 00200 void BSP_LCD_SetFont(sFONT *fonts); 00201 sFONT *BSP_LCD_GetFont(void); 00202 00203 uint32_t BSP_LCD_ReadPixel(uint16_t Xpos, uint16_t Ypos); 00204 void BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t pixel); 00205 void BSP_LCD_Clear(uint32_t Color); 00206 void BSP_LCD_ClearStringLine(uint32_t Line); 00207 void BSP_LCD_DisplayStringAtLine(uint16_t Line, uint8_t *ptr); 00208 void BSP_LCD_DisplayStringAt(uint16_t Xpos, uint16_t Ypos, uint8_t *Text, Text_AlignModeTypdef Mode); 00209 void BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii); 00210 00211 void BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length); 00212 void BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length); 00213 void BSP_LCD_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2); 00214 void BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height); 00215 void BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius); 00216 void BSP_LCD_DrawPolygon(pPoint Points, uint16_t PointCount); 00217 void BSP_LCD_DrawEllipse(int Xpos, int Ypos, int XRadius, int YRadius); 00218 void BSP_LCD_DrawBitmap(uint32_t Xpos, uint32_t Ypos, uint8_t *pbmp); 00219 00220 void BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height); 00221 void BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius); 00222 void BSP_LCD_FillPolygon(pPoint Points, uint16_t PointCount); 00223 void BSP_LCD_FillEllipse(int Xpos, int Ypos, int XRadius, int YRadius); 00224 00225 void BSP_LCD_DisplayOff(void); 00226 void BSP_LCD_DisplayOn(void); 00227 00228 /* These functions can be modified in case the current settings 00229 need to be changed for specific application needs */ 00230 void BSP_LCD_MspInit(LTDC_HandleTypeDef *hltdc, void *Params); 00231 void BSP_LCD_MspDeInit(LTDC_HandleTypeDef *hltdc, void *Params); 00232 void BSP_LCD_ClockConfig(LTDC_HandleTypeDef *hltdc, void *Params); 00233 00234 /** 00235 * @} 00236 */ 00237 00238 /** 00239 * @} 00240 */ 00241 00242 /** 00243 * @} 00244 */ 00245 00246 /** 00247 * @} 00248 */ 00249 00250 #ifdef __cplusplus 00251 } 00252 #endif 00253 00254 #endif /* __STM32746G_DISCOVERY_LCD_H */ 00255 00256 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jul 12 2022 16:12:48 by
