Clone

Dependents:   SignalProcessLab DigitalSignalAlgorithm_Lab DigitalSignal_Lab

Committer:
ngtkien
Date:
Mon Aug 26 16:33:20 2019 +0000
Revision:
0:2b6e9bff3e0a
Library LCD

Who changed what in which revision?

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