sp

Dependents:   WAV

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 /* Copyright (c) 2010-2011 mbed.org, MIT License
phungductung 0:4e245f4bc8ac 2 *
phungductung 0:4e245f4bc8ac 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
phungductung 0:4e245f4bc8ac 4 * and associated documentation files (the "Software"), to deal in the Software without
phungductung 0:4e245f4bc8ac 5 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
phungductung 0:4e245f4bc8ac 6 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
phungductung 0:4e245f4bc8ac 7 * Software is furnished to do so, subject to the following conditions:
phungductung 0:4e245f4bc8ac 8 *
phungductung 0:4e245f4bc8ac 9 * The above copyright notice and this permission notice shall be included in all copies or
phungductung 0:4e245f4bc8ac 10 * substantial portions of the Software.
phungductung 0:4e245f4bc8ac 11 *
phungductung 0:4e245f4bc8ac 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
phungductung 0:4e245f4bc8ac 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
phungductung 0:4e245f4bc8ac 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
phungductung 0:4e245f4bc8ac 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
phungductung 0:4e245f4bc8ac 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
phungductung 0:4e245f4bc8ac 17 */
phungductung 0:4e245f4bc8ac 18
phungductung 0:4e245f4bc8ac 19 #ifndef __LCD_DISCO_F746NG_H
phungductung 0:4e245f4bc8ac 20 #define __LCD_DISCO_F746NG_H
phungductung 0:4e245f4bc8ac 21
phungductung 0:4e245f4bc8ac 22 #ifdef TARGET_DISCO_F746NG
phungductung 0:4e245f4bc8ac 23
phungductung 0:4e245f4bc8ac 24 #include "mbed.h"
phungductung 0:4e245f4bc8ac 25 #include "stm32746g_discovery_lcd.h"
phungductung 0:4e245f4bc8ac 26
phungductung 0:4e245f4bc8ac 27 /*
phungductung 0:4e245f4bc8ac 28 This class drives the LCD display (RK043FN48H-CT672B 4,3" 480x272 pixels device) present on DISCO_F746NG board.
phungductung 0:4e245f4bc8ac 29
phungductung 0:4e245f4bc8ac 30 Usage:
phungductung 0:4e245f4bc8ac 31
phungductung 0:4e245f4bc8ac 32 #include "mbed.h"
phungductung 0:4e245f4bc8ac 33 #include "LCD_DISCO_F746NG.h"
phungductung 0:4e245f4bc8ac 34
phungductung 0:4e245f4bc8ac 35 LCD_DISCO_F746NG lcd;
phungductung 0:4e245f4bc8ac 36
phungductung 0:4e245f4bc8ac 37 int main()
phungductung 0:4e245f4bc8ac 38 {
phungductung 0:4e245f4bc8ac 39 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"MBED EXAMPLE", CENTER_MODE);
phungductung 0:4e245f4bc8ac 40 wait(1);
phungductung 0:4e245f4bc8ac 41 lcd.Clear(LCD_COLOR_BLUE);
phungductung 0:4e245f4bc8ac 42 lcd.SetBackColor(LCD_COLOR_BLUE);
phungductung 0:4e245f4bc8ac 43 lcd.SetTextColor(LCD_COLOR_WHITE);
phungductung 0:4e245f4bc8ac 44 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"DISCOVERY STM32F746NG", CENTER_MODE);
phungductung 0:4e245f4bc8ac 45 while(1)
phungductung 0:4e245f4bc8ac 46 {
phungductung 0:4e245f4bc8ac 47 }
phungductung 0:4e245f4bc8ac 48 }
phungductung 0:4e245f4bc8ac 49 */
phungductung 0:4e245f4bc8ac 50 class LCD_DISCO_F746NG
phungductung 0:4e245f4bc8ac 51 {
phungductung 0:4e245f4bc8ac 52
phungductung 0:4e245f4bc8ac 53 public:
phungductung 0:4e245f4bc8ac 54 //! Constructor
phungductung 0:4e245f4bc8ac 55 LCD_DISCO_F746NG();
phungductung 0:4e245f4bc8ac 56
phungductung 0:4e245f4bc8ac 57 //! Destructor
phungductung 0:4e245f4bc8ac 58 ~LCD_DISCO_F746NG();
phungductung 0:4e245f4bc8ac 59
phungductung 0:4e245f4bc8ac 60 /**
phungductung 0:4e245f4bc8ac 61 * @brief Initializes the LCD.
phungductung 0:4e245f4bc8ac 62 * @retval LCD state
phungductung 0:4e245f4bc8ac 63 */
phungductung 0:4e245f4bc8ac 64 uint8_t Init(void);
phungductung 0:4e245f4bc8ac 65
phungductung 0:4e245f4bc8ac 66 /**
phungductung 0:4e245f4bc8ac 67 * @brief DeInitializes the LCD.
phungductung 0:4e245f4bc8ac 68 * @retval LCD state
phungductung 0:4e245f4bc8ac 69 */
phungductung 0:4e245f4bc8ac 70 uint8_t DeInit(void);
phungductung 0:4e245f4bc8ac 71
phungductung 0:4e245f4bc8ac 72 /**
phungductung 0:4e245f4bc8ac 73 * @brief Gets the LCD X size.
phungductung 0:4e245f4bc8ac 74 * @retval Used LCD X size
phungductung 0:4e245f4bc8ac 75 */
phungductung 0:4e245f4bc8ac 76 uint32_t GetXSize(void);
phungductung 0:4e245f4bc8ac 77
phungductung 0:4e245f4bc8ac 78 /**
phungductung 0:4e245f4bc8ac 79 * @brief Gets the LCD Y size.
phungductung 0:4e245f4bc8ac 80 * @retval Used LCD Y size
phungductung 0:4e245f4bc8ac 81 */
phungductung 0:4e245f4bc8ac 82 uint32_t GetYSize(void);
phungductung 0:4e245f4bc8ac 83
phungductung 0:4e245f4bc8ac 84 /**
phungductung 0:4e245f4bc8ac 85 * @brief Set the LCD X size.
phungductung 0:4e245f4bc8ac 86 * @param imageWidthPixels : image width in pixels unit
phungductung 0:4e245f4bc8ac 87 * @retval None
phungductung 0:4e245f4bc8ac 88 */
phungductung 0:4e245f4bc8ac 89 void SetXSize(uint32_t imageWidthPixels);
phungductung 0:4e245f4bc8ac 90
phungductung 0:4e245f4bc8ac 91 /**
phungductung 0:4e245f4bc8ac 92 * @brief Set the LCD Y size.
phungductung 0:4e245f4bc8ac 93 * @param imageHeightPixels : image height in lines unit
phungductung 0:4e245f4bc8ac 94 * @retval None
phungductung 0:4e245f4bc8ac 95 */
phungductung 0:4e245f4bc8ac 96 void SetYSize(uint32_t imageHeightPixels);
phungductung 0:4e245f4bc8ac 97
phungductung 0:4e245f4bc8ac 98 /**
phungductung 0:4e245f4bc8ac 99 * @brief Initializes the LCD layer in ARGB8888 format (32 bits per pixel);.
phungductung 0:4e245f4bc8ac 100 * @param LayerIndex: Layer foreground or background
phungductung 0:4e245f4bc8ac 101 * @param FB_Address: Layer frame buffer
phungductung 0:4e245f4bc8ac 102 * @retval None
phungductung 0:4e245f4bc8ac 103 */
phungductung 0:4e245f4bc8ac 104 void LayerDefaultInit(uint16_t LayerIndex, uint32_t FB_Address);
phungductung 0:4e245f4bc8ac 105
phungductung 0:4e245f4bc8ac 106 /**
phungductung 0:4e245f4bc8ac 107 * @brief Initializes the LCD layer in RGB565 format (16 bits per pixel);.
phungductung 0:4e245f4bc8ac 108 * @param LayerIndex: Layer foreground or background
phungductung 0:4e245f4bc8ac 109 * @param FB_Address: Layer frame buffer
phungductung 0:4e245f4bc8ac 110 * @retval None
phungductung 0:4e245f4bc8ac 111 */
phungductung 0:4e245f4bc8ac 112 void LayerRgb565Init(uint16_t LayerIndex, uint32_t FB_Address);
phungductung 0:4e245f4bc8ac 113
phungductung 0:4e245f4bc8ac 114 /**
phungductung 0:4e245f4bc8ac 115 * @brief Selects the LCD Layer.
phungductung 0:4e245f4bc8ac 116 * @param LayerIndex: Layer foreground or background
phungductung 0:4e245f4bc8ac 117 * @retval None
phungductung 0:4e245f4bc8ac 118 */
phungductung 0:4e245f4bc8ac 119 void SelectLayer(uint32_t LayerIndex);
phungductung 0:4e245f4bc8ac 120
phungductung 0:4e245f4bc8ac 121 /**
phungductung 0:4e245f4bc8ac 122 * @brief Sets an LCD Layer visible
phungductung 0:4e245f4bc8ac 123 * @param LayerIndex: Visible Layer
phungductung 0:4e245f4bc8ac 124 * @param State: New state of the specified layer
phungductung 0:4e245f4bc8ac 125 * This parameter can be one of the following values:
phungductung 0:4e245f4bc8ac 126 * @arg ENABLE
phungductung 0:4e245f4bc8ac 127 * @arg DISABLE
phungductung 0:4e245f4bc8ac 128 * @retval None
phungductung 0:4e245f4bc8ac 129 */
phungductung 0:4e245f4bc8ac 130 void SetLayerVisible(uint32_t LayerIndex, FunctionalState State);
phungductung 0:4e245f4bc8ac 131
phungductung 0:4e245f4bc8ac 132 /**
phungductung 0:4e245f4bc8ac 133 * @brief Configures the transparency.
phungductung 0:4e245f4bc8ac 134 * @param LayerIndex: Layer foreground or background.
phungductung 0:4e245f4bc8ac 135 * @param Transparency: Transparency
phungductung 0:4e245f4bc8ac 136 * This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF
phungductung 0:4e245f4bc8ac 137 * @retval None
phungductung 0:4e245f4bc8ac 138 */
phungductung 0:4e245f4bc8ac 139 void SetTransparency(uint32_t LayerIndex, uint8_t Transparency);
phungductung 0:4e245f4bc8ac 140
phungductung 0:4e245f4bc8ac 141 /**
phungductung 0:4e245f4bc8ac 142 * @brief Sets an LCD layer frame buffer address.
phungductung 0:4e245f4bc8ac 143 * @param LayerIndex: Layer foreground or background
phungductung 0:4e245f4bc8ac 144 * @param Address: New LCD frame buffer value
phungductung 0:4e245f4bc8ac 145 * @retval None
phungductung 0:4e245f4bc8ac 146 */
phungductung 0:4e245f4bc8ac 147 void SetLayerAddress(uint32_t LayerIndex, uint32_t Address);
phungductung 0:4e245f4bc8ac 148
phungductung 0:4e245f4bc8ac 149 /**
phungductung 0:4e245f4bc8ac 150 * @brief Sets display window.
phungductung 0:4e245f4bc8ac 151 * @param LayerIndex: Layer index
phungductung 0:4e245f4bc8ac 152 * @param Xpos: LCD X position
phungductung 0:4e245f4bc8ac 153 * @param Ypos: LCD Y position
phungductung 0:4e245f4bc8ac 154 * @param Width: LCD window width
phungductung 0:4e245f4bc8ac 155 * @param Height: LCD window height
phungductung 0:4e245f4bc8ac 156 * @retval None
phungductung 0:4e245f4bc8ac 157 */
phungductung 0:4e245f4bc8ac 158 void SetLayerWindow(uint16_t LayerIndex, uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
phungductung 0:4e245f4bc8ac 159
phungductung 0:4e245f4bc8ac 160 /**
phungductung 0:4e245f4bc8ac 161 * @brief Configures and sets the color keying.
phungductung 0:4e245f4bc8ac 162 * @param LayerIndex: Layer foreground or background
phungductung 0:4e245f4bc8ac 163 * @param RGBValue: Color reference
phungductung 0:4e245f4bc8ac 164 * @retval None
phungductung 0:4e245f4bc8ac 165 */
phungductung 0:4e245f4bc8ac 166 void SetColorKeying(uint32_t LayerIndex, uint32_t RGBValue);
phungductung 0:4e245f4bc8ac 167
phungductung 0:4e245f4bc8ac 168 /**
phungductung 0:4e245f4bc8ac 169 * @brief Disables the color keying.
phungductung 0:4e245f4bc8ac 170 * @param LayerIndex: Layer foreground or background
phungductung 0:4e245f4bc8ac 171 * @retval None
phungductung 0:4e245f4bc8ac 172 */
phungductung 0:4e245f4bc8ac 173 void ResetColorKeying(uint32_t LayerIndex);
phungductung 0:4e245f4bc8ac 174
phungductung 0:4e245f4bc8ac 175 /**
phungductung 0:4e245f4bc8ac 176 * @brief Sets the LCD text color.
phungductung 0:4e245f4bc8ac 177 * @param Color: Text color code ARGB(8-8-8-8);
phungductung 0:4e245f4bc8ac 178 * @retval None
phungductung 0:4e245f4bc8ac 179 */
phungductung 0:4e245f4bc8ac 180 void SetTextColor(uint32_t Color);
phungductung 0:4e245f4bc8ac 181
phungductung 0:4e245f4bc8ac 182 /**
phungductung 0:4e245f4bc8ac 183 * @brief Gets the LCD text color.
phungductung 0:4e245f4bc8ac 184 * @retval Used text color.
phungductung 0:4e245f4bc8ac 185 */
phungductung 0:4e245f4bc8ac 186 uint32_t GetTextColor(void);
phungductung 0:4e245f4bc8ac 187
phungductung 0:4e245f4bc8ac 188 /**
phungductung 0:4e245f4bc8ac 189 * @brief Sets the LCD background color.
phungductung 0:4e245f4bc8ac 190 * @param Color: Layer background color code ARGB(8-8-8-8);
phungductung 0:4e245f4bc8ac 191 * @retval None
phungductung 0:4e245f4bc8ac 192 */
phungductung 0:4e245f4bc8ac 193 void SetBackColor(uint32_t Color);
phungductung 0:4e245f4bc8ac 194
phungductung 0:4e245f4bc8ac 195 /**
phungductung 0:4e245f4bc8ac 196 * @brief Gets the LCD background color.
phungductung 0:4e245f4bc8ac 197 * @retval Used background colour
phungductung 0:4e245f4bc8ac 198 */
phungductung 0:4e245f4bc8ac 199 uint32_t GetBackColor(void);
phungductung 0:4e245f4bc8ac 200
phungductung 0:4e245f4bc8ac 201 /**
phungductung 0:4e245f4bc8ac 202 * @brief Sets the LCD text font.
phungductung 0:4e245f4bc8ac 203 * @param fonts: Layer font to be used
phungductung 0:4e245f4bc8ac 204 * @retval None
phungductung 0:4e245f4bc8ac 205 */
phungductung 0:4e245f4bc8ac 206 void SetFont(sFONT *fonts);
phungductung 0:4e245f4bc8ac 207
phungductung 0:4e245f4bc8ac 208 /**
phungductung 0:4e245f4bc8ac 209 * @brief Gets the LCD text font.
phungductung 0:4e245f4bc8ac 210 * @retval Used layer font
phungductung 0:4e245f4bc8ac 211 */
phungductung 0:4e245f4bc8ac 212 sFONT *GetFont(void);
phungductung 0:4e245f4bc8ac 213
phungductung 0:4e245f4bc8ac 214 /**
phungductung 0:4e245f4bc8ac 215 * @brief Reads an LCD pixel.
phungductung 0:4e245f4bc8ac 216 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 217 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 218 * @retval RGB pixel color
phungductung 0:4e245f4bc8ac 219 */
phungductung 0:4e245f4bc8ac 220 uint32_t ReadPixel(uint16_t Xpos, uint16_t Ypos);
phungductung 0:4e245f4bc8ac 221
phungductung 0:4e245f4bc8ac 222 /**
phungductung 0:4e245f4bc8ac 223 * @brief Clears the whole LCD.
phungductung 0:4e245f4bc8ac 224 * @param Color: Color of the background
phungductung 0:4e245f4bc8ac 225 * @retval None
phungductung 0:4e245f4bc8ac 226 */
phungductung 0:4e245f4bc8ac 227 void Clear(uint32_t Color);
phungductung 0:4e245f4bc8ac 228
phungductung 0:4e245f4bc8ac 229 /**
phungductung 0:4e245f4bc8ac 230 * @brief Clears the selected line.
phungductung 0:4e245f4bc8ac 231 * @param Line: Line to be cleared
phungductung 0:4e245f4bc8ac 232 * @retval None
phungductung 0:4e245f4bc8ac 233 */
phungductung 0:4e245f4bc8ac 234 void ClearStringLine(uint32_t Line);
phungductung 0:4e245f4bc8ac 235
phungductung 0:4e245f4bc8ac 236 /**
phungductung 0:4e245f4bc8ac 237 * @brief Displays one character.
phungductung 0:4e245f4bc8ac 238 * @param Xpos: Start column address
phungductung 0:4e245f4bc8ac 239 * @param Ypos: Line where to display the character shape.
phungductung 0:4e245f4bc8ac 240 * @param Ascii: Character ascii code
phungductung 0:4e245f4bc8ac 241 * This parameter must be a number between Min_Data = 0x20 and Max_Data = 0x7E
phungductung 0:4e245f4bc8ac 242 * @retval None
phungductung 0:4e245f4bc8ac 243 */
phungductung 0:4e245f4bc8ac 244 void DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii);
phungductung 0:4e245f4bc8ac 245
phungductung 0:4e245f4bc8ac 246 /**
phungductung 0:4e245f4bc8ac 247 * @brief Displays characters on the LCD.
phungductung 0:4e245f4bc8ac 248 * @param Xpos: X position (in pixel);
phungductung 0:4e245f4bc8ac 249 * @param Ypos: Y position (in pixel);
phungductung 0:4e245f4bc8ac 250 * @param Text: Pointer to string to display on LCD
phungductung 0:4e245f4bc8ac 251 * @param Mode: Display mode
phungductung 0:4e245f4bc8ac 252 * This parameter can be one of the following values:
phungductung 0:4e245f4bc8ac 253 * @arg CENTER_MODE
phungductung 0:4e245f4bc8ac 254 * @arg RIGHT_MODE
phungductung 0:4e245f4bc8ac 255 * @arg LEFT_MODE
phungductung 0:4e245f4bc8ac 256 * @retval None
phungductung 0:4e245f4bc8ac 257 */
phungductung 0:4e245f4bc8ac 258 void DisplayStringAt(uint16_t Xpos, uint16_t Ypos, uint8_t *Text, Text_AlignModeTypdef Mode);
phungductung 0:4e245f4bc8ac 259
phungductung 0:4e245f4bc8ac 260 /**
phungductung 0:4e245f4bc8ac 261 * @brief Displays a maximum of 60 characters on the LCD.
phungductung 0:4e245f4bc8ac 262 * @param Line: Line where to display the character shape
phungductung 0:4e245f4bc8ac 263 * @param ptr: Pointer to string to display on LCD
phungductung 0:4e245f4bc8ac 264 * @retval None
phungductung 0:4e245f4bc8ac 265 */
phungductung 0:4e245f4bc8ac 266 void DisplayStringAtLine(uint16_t Line, uint8_t *ptr);
phungductung 0:4e245f4bc8ac 267
phungductung 0:4e245f4bc8ac 268 /**
phungductung 0:4e245f4bc8ac 269 * @brief Draws an horizontal line.
phungductung 0:4e245f4bc8ac 270 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 271 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 272 * @param Length: Line length
phungductung 0:4e245f4bc8ac 273 * @retval None
phungductung 0:4e245f4bc8ac 274 */
phungductung 0:4e245f4bc8ac 275 void DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
phungductung 0:4e245f4bc8ac 276
phungductung 0:4e245f4bc8ac 277 /**
phungductung 0:4e245f4bc8ac 278 * @brief Draws a vertical line.
phungductung 0:4e245f4bc8ac 279 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 280 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 281 * @param Length: Line length
phungductung 0:4e245f4bc8ac 282 * @retval None
phungductung 0:4e245f4bc8ac 283 */
phungductung 0:4e245f4bc8ac 284 void DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length);
phungductung 0:4e245f4bc8ac 285
phungductung 0:4e245f4bc8ac 286 /**
phungductung 0:4e245f4bc8ac 287 * @brief Draws an uni-line (between two points);.
phungductung 0:4e245f4bc8ac 288 * @param x1: Point 1 X position
phungductung 0:4e245f4bc8ac 289 * @param y1: Point 1 Y position
phungductung 0:4e245f4bc8ac 290 * @param x2: Point 2 X position
phungductung 0:4e245f4bc8ac 291 * @param y2: Point 2 Y position
phungductung 0:4e245f4bc8ac 292 * @retval None
phungductung 0:4e245f4bc8ac 293 */
phungductung 0:4e245f4bc8ac 294 void DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
phungductung 0:4e245f4bc8ac 295
phungductung 0:4e245f4bc8ac 296 /**
phungductung 0:4e245f4bc8ac 297 * @brief Draws a rectangle.
phungductung 0:4e245f4bc8ac 298 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 299 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 300 * @param Width: Rectangle width
phungductung 0:4e245f4bc8ac 301 * @param Height: Rectangle height
phungductung 0:4e245f4bc8ac 302 * @retval None
phungductung 0:4e245f4bc8ac 303 */
phungductung 0:4e245f4bc8ac 304 void DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
phungductung 0:4e245f4bc8ac 305
phungductung 0:4e245f4bc8ac 306 /**
phungductung 0:4e245f4bc8ac 307 * @brief Draws a circle.
phungductung 0:4e245f4bc8ac 308 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 309 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 310 * @param Radius: Circle radius
phungductung 0:4e245f4bc8ac 311 * @retval None
phungductung 0:4e245f4bc8ac 312 */
phungductung 0:4e245f4bc8ac 313 void DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
phungductung 0:4e245f4bc8ac 314
phungductung 0:4e245f4bc8ac 315 /**
phungductung 0:4e245f4bc8ac 316 * @brief Draws an poly-line (between many points);.
phungductung 0:4e245f4bc8ac 317 * @param Points: Pointer to the points array
phungductung 0:4e245f4bc8ac 318 * @param PointCount: Number of points
phungductung 0:4e245f4bc8ac 319 * @retval None
phungductung 0:4e245f4bc8ac 320 */
phungductung 0:4e245f4bc8ac 321 void DrawPolygon(pPoint Points, uint16_t PointCount);
phungductung 0:4e245f4bc8ac 322
phungductung 0:4e245f4bc8ac 323 /**
phungductung 0:4e245f4bc8ac 324 * @brief Draws an ellipse on LCD.
phungductung 0:4e245f4bc8ac 325 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 326 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 327 * @param XRadius: Ellipse X radius
phungductung 0:4e245f4bc8ac 328 * @param YRadius: Ellipse Y radius
phungductung 0:4e245f4bc8ac 329 * @retval None
phungductung 0:4e245f4bc8ac 330 */
phungductung 0:4e245f4bc8ac 331 void DrawEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
phungductung 0:4e245f4bc8ac 332
phungductung 0:4e245f4bc8ac 333 /**
phungductung 0:4e245f4bc8ac 334 * @brief Draws a pixel on LCD.
phungductung 0:4e245f4bc8ac 335 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 336 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 337 * @param RGB_Code: Pixel color in ARGB mode (8-8-8-8);
phungductung 0:4e245f4bc8ac 338 * @retval None
phungductung 0:4e245f4bc8ac 339 */
phungductung 0:4e245f4bc8ac 340 void DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t RGB_Code);
phungductung 0:4e245f4bc8ac 341
phungductung 0:4e245f4bc8ac 342 /**
phungductung 0:4e245f4bc8ac 343 * @brief Draws a bitmap picture loaded in the internal Flash in ARGB888 format (32 bits per pixel);.
phungductung 0:4e245f4bc8ac 344 * @param Xpos: Bmp X position in the LCD
phungductung 0:4e245f4bc8ac 345 * @param Ypos: Bmp Y position in the LCD
phungductung 0:4e245f4bc8ac 346 * @param pbmp: Pointer to Bmp picture address in the internal Flash
phungductung 0:4e245f4bc8ac 347 * @retval None
phungductung 0:4e245f4bc8ac 348 */
phungductung 0:4e245f4bc8ac 349 void DrawBitmap(uint32_t Xpos, uint32_t Ypos, uint8_t *pbmp);
phungductung 0:4e245f4bc8ac 350
phungductung 0:4e245f4bc8ac 351 /**
phungductung 0:4e245f4bc8ac 352 * @brief Draws a full rectangle.
phungductung 0:4e245f4bc8ac 353 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 354 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 355 * @param Width: Rectangle width
phungductung 0:4e245f4bc8ac 356 * @param Height: Rectangle height
phungductung 0:4e245f4bc8ac 357 * @retval None
phungductung 0:4e245f4bc8ac 358 */
phungductung 0:4e245f4bc8ac 359 void FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
phungductung 0:4e245f4bc8ac 360
phungductung 0:4e245f4bc8ac 361 /**
phungductung 0:4e245f4bc8ac 362 * @brief Draws a full circle.
phungductung 0:4e245f4bc8ac 363 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 364 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 365 * @param Radius: Circle radius
phungductung 0:4e245f4bc8ac 366 * @retval None
phungductung 0:4e245f4bc8ac 367 */
phungductung 0:4e245f4bc8ac 368 void FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
phungductung 0:4e245f4bc8ac 369
phungductung 0:4e245f4bc8ac 370 /**
phungductung 0:4e245f4bc8ac 371 * @brief Draws a full poly-line (between many points);.
phungductung 0:4e245f4bc8ac 372 * @param Points: Pointer to the points array
phungductung 0:4e245f4bc8ac 373 * @param PointCount: Number of points
phungductung 0:4e245f4bc8ac 374 * @retval None
phungductung 0:4e245f4bc8ac 375 */
phungductung 0:4e245f4bc8ac 376 void FillPolygon(pPoint Points, uint16_t PointCount);
phungductung 0:4e245f4bc8ac 377
phungductung 0:4e245f4bc8ac 378 /**
phungductung 0:4e245f4bc8ac 379 * @brief Draws a full ellipse.
phungductung 0:4e245f4bc8ac 380 * @param Xpos: X position
phungductung 0:4e245f4bc8ac 381 * @param Ypos: Y position
phungductung 0:4e245f4bc8ac 382 * @param XRadius: Ellipse X radius
phungductung 0:4e245f4bc8ac 383 * @param YRadius: Ellipse Y radius
phungductung 0:4e245f4bc8ac 384 * @retval None
phungductung 0:4e245f4bc8ac 385 */
phungductung 0:4e245f4bc8ac 386 void FillEllipse(int Xpos, int Ypos, int XRadius, int YRadius);
phungductung 0:4e245f4bc8ac 387
phungductung 0:4e245f4bc8ac 388 /**
phungductung 0:4e245f4bc8ac 389 * @brief Enables the display.
phungductung 0:4e245f4bc8ac 390 * @retval None
phungductung 0:4e245f4bc8ac 391 */
phungductung 0:4e245f4bc8ac 392 void DisplayOn(void);
phungductung 0:4e245f4bc8ac 393
phungductung 0:4e245f4bc8ac 394 /**
phungductung 0:4e245f4bc8ac 395 * @brief Disables the display.
phungductung 0:4e245f4bc8ac 396 * @retval None
phungductung 0:4e245f4bc8ac 397 */
phungductung 0:4e245f4bc8ac 398 void DisplayOff(void);
phungductung 0:4e245f4bc8ac 399
phungductung 0:4e245f4bc8ac 400 private:
phungductung 0:4e245f4bc8ac 401
phungductung 0:4e245f4bc8ac 402 };
phungductung 0:4e245f4bc8ac 403
phungductung 0:4e245f4bc8ac 404 #else
phungductung 0:4e245f4bc8ac 405 #error "This class must be used with DISCO_F746NG board only."
phungductung 0:4e245f4bc8ac 406 #endif // TARGET_DISCO_F746NG
phungductung 0:4e245f4bc8ac 407
phungductung 0:4e245f4bc8ac 408 #endif