lcd

Dependencies:   DS1307

Committer:
hameddejnabadi
Date:
Mon Aug 05 05:58:35 2019 +0000
Revision:
0:c9901a4a9245
qwe

Who changed what in which revision?

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