STM32L152D_EVAL BSP User Manual: stm32l152d_eval_glass_lcd.c Source File

STM32L152D_EVAL BSP

stm32l152d_eval_glass_lcd.c
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32l152d_eval_glass_lcd.c
00004   * @author  MCD Application Team
00005   * @brief   This file includes the LCD Glass driver for LCD XHO5002B Module of 
00006   *          STM32L152D-EVAL board.
00007   ******************************************************************************
00008   * @attention
00009   *
00010   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
00011   *
00012   * Redistribution and use in source and binary forms, with or without modification,
00013   * are permitted provided that the following conditions are met:
00014   *   1. Redistributions of source code must retain the above copyright notice,
00015   *      this list of conditions and the following disclaimer.
00016   *   2. Redistributions in binary form must reproduce the above copyright notice,
00017   *      this list of conditions and the following disclaimer in the documentation
00018   *      and/or other materials provided with the distribution.
00019   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00020   *      may be used to endorse or promote products derived from this software
00021   *      without specific prior written permission.
00022   *
00023   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00024   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00025   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00026   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00027   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00028   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00029   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00030   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00031   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00032   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00033   *
00034   ******************************************************************************
00035   */
00036 
00037 /* Includes ------------------------------------------------------------------*/
00038 #include "stm32l152d_eval_glass_lcd.h"
00039 
00040 /** @addtogroup BSP
00041   * @{
00042   */
00043 
00044 /** @addtogroup STM32L152D_EVAL
00045   * @{
00046   */
00047   
00048 /** @defgroup STM32L152D_EVAL_GLASS_LCD STM32L152D-EVAL Glass LCD
00049   * @brief This file includes the LCD Glass driver for LCD_XHO5002B Module of 
00050   *        STM32L152D-EVAL board.
00051   * @{
00052   */ 
00053 
00054 
00055 /** @defgroup STM32L152D_EVAL_GLASS_LCD_Private_Defines Private Defines
00056   * @{
00057   */ 
00058 #define ASCII_CHAR_SPACE              0x20  /*   */
00059 #define ASCII_CHAR_FORWARD_SLASH      0x2F  /* / */
00060 #define ASCII_CHAR_0                  0x30  /* 0 */
00061 #define ASCII_CHAR_COLON              0x3A  /* : */
00062 #define ASCII_CHAR_AT_SYMBOL          0x40  /* @ */
00063 #define ASCII_CHAR_A                  0x41  /* A */
00064 #define ASCII_CHAR_LEFT_OPEN_BRACKET  0x5B  /* [ */
00065 /**
00066   * @}
00067   */   
00068 
00069 /** @defgroup STM32L152D_EVAL_GLASS_LCD_Private_Variables Private Variables
00070   * @{
00071   */ 
00072 
00073 /**
00074   @verbatim
00075 ================================================================================
00076                               GLASS LCD MAPPING
00077 ================================================================================
00078                A
00079        _  ----------
00080      P|_| |\   |H  /|
00081          F| G  |  I |B
00082           |  \ | /  |
00083           --M-- --N--
00084           |   /| \  |
00085          E|  L |  J |C
00086        _  | /  |K  \|
00087      Q|_| -----------
00088               D
00089 
00090 A LCD character coding is based on the following matrix:
00091              COM0    COM1    COM4    COM5     COM6    COM7
00092   SEG(n)    { 0 ,     0 ,     I ,     B ,      C ,     J }
00093   SEG(n+1)  { D ,     K ,     A ,     H ,      M ,     N }
00094   SEG(n+2)  { Q ,     L ,     G ,     F ,      P ,     E }
00095 
00096 The character A for example is:
00097 -----------------------------------------------------------
00098              COM0    COM1     COM4    COM5    COM6     COM7
00099   SEG(n)    { 0 ,     0 ,      0 ,     1 ,     1 ,      0 }
00100   SEG(n+1)  { 0 ,     0 ,      1 ,     0 ,     1 ,      1 }
00101   SEG(n+2)  { 0 ,     0 ,      0 ,     1 ,     0 ,      1 }
00102    --------------------------------------------------------
00103            =  0       0        2       5       3        6 hex
00104 
00105    => 'A' = 0x002536
00106 
00107   @endverbatim
00108   */
00109 
00110 LCD_HandleTypeDef LCDHandle;
00111 
00112 /* LCD BAR status: To save the bar setting after writing in LCD RAM memory */
00113 uint8_t LCDBar = BATTERYLEVEL_FULL;
00114 
00115 /**
00116   * @brief LETTERS AND NUMBERS MAPPING DEFINITION
00117   */
00118 __IO const uint32_t Mask[] =
00119   {
00120     0x00F00000, 0x000F0000, 0x0000F000, 0x00000F00, 0x000000F0, 0x0000000F
00121   };
00122 const uint8_t Shift[6] =
00123   {
00124     20, 16, 12, 8, 4, 0
00125   };
00126 
00127 uint32_t Digit[6];     /* Digit frame buffer */
00128 
00129 /* Letters and number map of the custom LCD 8x40(STM8L152D-EVAL evaluation board) */
00130 __IO const uint32_t LetterMap[26] =
00131   {
00132     /*  A            B          C           D           E            F   */
00133     0x00002536, 0x00202536, 0x00202404, 0x00222310, 0x00202426, 0x00002426, 
00134     /*   G            H          I            J           K         L    */ 
00135     0x00202416, 0x00000536, 0x00222200, 0x00200114, 0x00001425, 0x00200404,
00136     /*   M          N           O            P          Q         R      */ 
00137     0x00005514, 0x00004515, 0x00202514, 0x00002526, 0x00002532, 0x00002527,
00138     /*   S           T           U           V           W           X   */
00139     0x00202432, 0x00022200, 0x00200514, 0x00041404, 0x00040515, 0x00045001, 
00140     /*  Y          Z     */
00141     0x00025000, 0x00243000
00142   };
00143 
00144 __IO const uint32_t NumberMap[10] =
00145   {
00146     /*   0           1           2          3           4   */
00147     0x00202514, 0x00000110, 0x00202126, 0x00202132, 0x00000532,
00148     /*    5         6            7          8           9   */
00149     0x00202432, 0x00202436, 0x00002110, 0x00202536, 0x00202532
00150   };
00151 
00152 /* Constant table for cap characters 'A' --> 'Z' */
00153 const uint16_t CapLetterMap[26]=
00154 {
00155   /* A       B       C       D       E       F       G       H       I  */
00156   0xFE00, 0x6714, 0x1D00, 0x4714, 0x9D00, 0x9C00, 0x3F00, 0xFA00, 0x0014,
00157   /* J       K       L       M       N       O       P       Q       R  */
00158   0x5300, 0x9841, 0x1900, 0x5A48, 0x5A09, 0x5F00, 0xFC00, 0x5F01, 0xFC01,
00159   /* S       T       U       V       W       X       Y       Z  */
00160   0xAF00, 0x0414, 0x5b00, 0x18C0, 0x5A81, 0x00C9, 0x0058, 0x05C0
00161 };
00162 
00163 /**
00164   * @}
00165   */
00166 
00167 /** @defgroup STM32L152D_EVAL_LCD_Private_Functions Private Functions
00168   * @{
00169   */
00170 static void Convert(uint8_t* c, Point_Typedef Point, DoublePoint_Typedef DoublePoint);
00171 static void LCD_MspInit(LCD_HandleTypeDef *hlcd);
00172 
00173 /**
00174   * @}
00175   */ 
00176 
00177 /** @defgroup STM32L152D_EVAL_GLASS_LCD_Exported_Functions Exported Functions
00178   * @{
00179   */ 
00180 
00181 /**
00182   * @brief  Configures the LCD GLASS relative GPIO port IOs and LCD peripheral.
00183   * @retval None
00184   */
00185 void BSP_LCD_GLASS_Init(void)
00186 {
00187   LCDHandle.Instance              = LCD;
00188   LCDHandle.Init.Prescaler        = LCD_PRESCALER_4;
00189   LCDHandle.Init.Divider          = LCD_DIVIDER_16;
00190   LCDHandle.Init.Duty             = LCD_DUTY_1_8;
00191   LCDHandle.Init.Bias             = LCD_BIAS_1_4;
00192   LCDHandle.Init.VoltageSource    = LCD_VOLTAGESOURCE_INTERNAL;
00193   LCDHandle.Init.Contrast         = LCD_CONTRASTLEVEL_7;
00194   LCDHandle.Init.DeadTime         = LCD_DEADTIME_0; 
00195   LCDHandle.Init.PulseOnDuration  = LCD_PULSEONDURATION_2;
00196   LCDHandle.Init.BlinkMode        = LCD_BLINKMODE_OFF;
00197   LCDHandle.Init.BlinkFrequency   = LCD_BLINKFREQUENCY_DIV8;
00198   LCDHandle.Init.MuxSegment       = LCD_MUXSEGMENT_DISABLE;
00199   
00200   __HAL_LCD_RESET_HANDLE_STATE(&LCDHandle);
00201   
00202   /* Initialize the LCD */
00203   LCD_MspInit(&LCDHandle);
00204   HAL_LCD_Init(&LCDHandle);
00205 }
00206 
00207 /**
00208   * @brief  LCD contrast setting
00209   * @param  Contrast: specifies the LCD Contrast.
00210   *   This parameter can be one of the following values:
00211   *     @arg LCD_CONTRASTLEVEL_0: Maximum Voltage = 2.60V
00212   *     @arg LCD_CONTRASTLEVEL_1: Maximum Voltage = 2.73V
00213   *     @arg LCD_CONTRASTLEVEL_2: Maximum Voltage = 2.86V
00214   *     @arg LCD_CONTRASTLEVEL_3: Maximum Voltage = 2.99V
00215   *     @arg LCD_CONTRASTLEVEL_4: Maximum Voltage = 3.12V
00216   *     @arg LCD_CONTRASTLEVEL_5: Maximum Voltage = 3.25V
00217   *     @arg LCD_CONTRASTLEVEL_6: Maximum Voltage = 3.38V
00218   *     @arg LCD_CONTRASTLEVEL_7: Maximum Voltage = 3.51V
00219   * @retval None
00220   */
00221 void BSP_LCD_GLASS_Contrast(uint32_t Contrast)
00222 {
00223   __HAL_LCD_CONTRAST_CONFIG(&LCDHandle, Contrast);
00224 }
00225 
00226 /**
00227   * @brief This function writes a char in the LCD frame buffer.
00228   * @param ch: the character to display.
00229   * @param Point: a point to add in front of char
00230   *        This parameter can be: POINT_OFF or POINT_ON
00231   * @param Column: flag indicating if a column has to be add in front
00232   *        of displayed character.
00233   *        This parameter can be: DOUBLEPOINT_OFF or DOUBLEPOINT_ON.
00234   * @param Position: position in the LCD of the caracter to write [1:7]
00235   * @retval None
00236   * @note  Required preconditions: The LCD should be cleared before to start the
00237   *        write operation.  
00238   */
00239 void BSP_LCD_GLASS_WriteChar(uint8_t* ch, uint8_t Point, uint8_t Column, uint8_t Position)
00240 {
00241   /* To convert displayed character in segment in array digit */
00242   Convert(ch, (Point_Typedef)Point, (DoublePoint_Typedef)Column);
00243   switch(Position)
00244   {
00245     /* Position 1 on LCD */
00246     case 1: 
00247       /* Write Digit 0 on COM0 */
00248       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFBFF, (Digit[0] << (uint32_t)0x09));
00249       /* Write Digit 1 on COM1 */
00250       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFF3FF, (Digit[1] << (uint32_t)0x09));
00251       /* Write Digit 2 on COM4 */
00252       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFFF1FF, (Digit[2] << (uint32_t)0x09));
00253       /* Write Digit 3 on COM5 */
00254       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFFF1FF, (Digit[3] << (uint32_t)0x09)); 
00255       /* Write Digit 4 on COM6 */
00256       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFF9FF, (Digit[4] << (uint32_t)0x09));
00257       /* Write Digit 5 on COM7 */
00258       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFFF1FF, (Digit[5] << (uint32_t)0x09));
00259       break;
00260     
00261     /* Position 2 on LCD */
00262     case 2:
00263       /* Write Digit 0 on COM0 */
00264       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFF9FFF, (Digit[0] << (uint32_t)0x0C));
00265       /* Write Digit 1 on COM1 */
00266       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFF9FFF, (Digit[1] << (uint32_t)0x0C));
00267       /* Write Digit 2 on COM4 */
00268       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFF8FFF, (Digit[2] << (uint32_t)0x0C));
00269       /* Write Digit 3 on COM5 */
00270       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFF8FFF, (Digit[3] << (uint32_t)0x0C)); 
00271       /* Write Digit 4 on COM6 */
00272       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFF8FFF, (Digit[4] << (uint32_t)0x0C));
00273       /* Write Digit 5 on COM7 */
00274       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFF8FFF, (Digit[5] << (uint32_t)0x0C));
00275       break;
00276     
00277     /* Position 3 on LCD */
00278     case 3:
00279       /* Write Digit 0 on COM0 */
00280       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFCFFFF, (Digit[0] << (uint32_t)0x0F));
00281       /* Write Digit 1 on COM1 */
00282       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFCFFFF, (Digit[1] << (uint32_t)0x0F));
00283       /* Write Digit 2 on COM4 */
00284       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFC7FFF, (Digit[2] << (uint32_t)0x0F));
00285       /* Write Digit 3 on COM5 */
00286       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFC7FFF, (Digit[3] << (uint32_t)0x0F)); 
00287       /* Write Digit 4 on COM6 */
00288       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFC7FFF, (Digit[4] << (uint32_t)0x0F));
00289       /* Write Digit 5 on COM7 */
00290       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFC7FFF, (Digit[5] << (uint32_t)0x0F));
00291       break;
00292     
00293     /* Position 4 on LCD */
00294     case 4:
00295       /* Write Digit 0 on COM0 */
00296       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFE7FFFF, (Digit[0] << (uint32_t)0x12));
00297       /* Write Digit 1 on COM1 */
00298       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFE7FFFF, (Digit[1] << (uint32_t)0x12));
00299       /* Write Digit 2 on COM4 */
00300       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFE3FFFF, (Digit[2] << (uint32_t)0x12));
00301       /* Write Digit 3 on COM5 */
00302       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFE3FFFF, (Digit[3] << (uint32_t)0x12)); 
00303       /* Write Digit 4 on COM6 */
00304       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFE3FFFF, (Digit[4] << (uint32_t)0x12));
00305       /* Write Digit 5 on COM7 */
00306       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFE3FFFF, (Digit[5] << (uint32_t)0x12));
00307       break;
00308     
00309     /* Position 5 on LCD */
00310     case 5:
00311       /* Write Digit 0 on COM0 */
00312       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFF9, Digit[0]);
00313       /* Write Digit 1 on COM1 */
00314       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFF9, Digit[1]);
00315       /* Write Digit 2 on COM4 */
00316       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFFFFF8, Digit[2]);
00317       /* Write Digit 3 on COM5 */
00318       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFFFFF8, Digit[3]); 
00319       /* Write Digit 4 on COM6 */
00320       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFFFF8, Digit[4]);
00321       /* Write Digit 5 on COM7 */
00322       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFFFFF8, Digit[5]);
00323       break;
00324     
00325     /* Position 6 on LCD */
00326     case 6:
00327       /* Write Digit 0 on COM0 */
00328       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFCF, (Digit[0] << (uint32_t)0x03));
00329       /* Write Digit 1 on COM1 */
00330       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFCF, (Digit[1] << (uint32_t)0x03));
00331       /* Write Digit 2 on COM4 */
00332       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFFFFC7, (Digit[2] << (uint32_t)0x03));
00333       /* Write Digit 3 on COM5 */
00334       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFFFFC7, (Digit[3] << (uint32_t)0x03)); 
00335       /* Write Digit 4 on COM6 */
00336       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFFFC7, (Digit[4] << (uint32_t)0x03));
00337       /* Write Digit 5 on COM7 */
00338       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFFFFC7, (Digit[5] << (uint32_t)0x03));
00339       break;
00340     
00341     /* Position 7 on LCD */
00342     case 7:
00343       /* Write Digit 0 on COM0 */
00344       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFE7F, (Digit[0] << (uint32_t)0x06));
00345       /* Write Digit 1 on COM1 */
00346       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFE7F, (Digit[1] << (uint32_t)0x06));
00347       /* Write Digit 2 on COM4 */
00348       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFFFE3F, (Digit[2] << (uint32_t)0x06));
00349       /* Write Digit 3 on COM5 */
00350       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFFFE3F, (Digit[3] << (uint32_t)0x06)); 
00351       /* Write Digit 4 on COM6 */
00352       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFFE3F, (Digit[4] << (uint32_t)0x06));
00353       /* Write Digit 5 on COM7 */
00354       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFFFE3F, (Digit[5] << (uint32_t)0x06));
00355       break;
00356     
00357   default:
00358     break;
00359   }
00360 
00361   /* Update the LCD display */
00362   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00363 }
00364 
00365 /**
00366   * @brief Setting bar on LCD, writes bar value in LCD frame buffer 
00367   * @param BarLevel: specifies the LCD GLASS Batery Level.
00368   *     This parameter can be one of the following values:
00369   *     @arg BATTERYLEVEL_OFF: LCD GLASS Batery Empty
00370   *     @arg BATTERYLEVEL_1_4: LCD GLASS Batery 1/4 Full
00371   *     @arg BATTERYLEVEL_1_2: LCD GLASS Batery 1/2 Full
00372   *     @arg BATTERYLEVEL_3_4: LCD GLASS Batery 3/4 Full
00373   *     @arg BATTERYLEVEL_FULL: LCD GLASS Batery Full
00374   * @retval None
00375   */
00376 void BSP_LCD_GLASS_BarLevelConfig(uint8_t BarLevel)
00377 {
00378   switch (BarLevel)
00379   {
00380   case BATTERYLEVEL_OFF:
00381     /* Set BATTERYLEVEL_3_4 off  */
00382     /* Set BATTERYLEVEL_1_4 off  */
00383     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFF6, 0);    
00384     /* Set BATTERYLEVEL_1_2 off  */
00385     /* Set BATTERYLEVEL_FULL off  */
00386     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFF6, 0);
00387     LCDBar = BATTERYLEVEL_OFF;
00388     break;
00389     
00390   /* BARLEVEL 1/4 */
00391   case BATTERYLEVEL_1_4:
00392     /* Set BATTERYLEVEL_1_4  on  */
00393     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFF6, (uint32_t)(0x00000001));    
00394     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFF6, 0);
00395     LCDBar = BATTERYLEVEL_1_4;
00396     break;
00397     
00398   /* BARLEVEL 1/2 */
00399   case BATTERYLEVEL_1_2:
00400     /* Set BatteryLevel_1_4 on  */
00401     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFF6, (uint32_t)(0x00000001));    
00402     /* Set BatteryLevel_1_2 on  */
00403     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFF6, (uint32_t)(0x00000001));
00404     LCDBar = BATTERYLEVEL_1_2;
00405     break;
00406     
00407   /* Battery Level 3/4 */
00408   case BATTERYLEVEL_3_4:
00409     /* Set BATTERYLEVEL_3_4 on  */
00410     /* Set BatteryLevel_1_4 on  */
00411     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFF6, (uint32_t)(0x00000001));    
00412     /* Set BatteryLevel_1_2 on  */
00413     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFF6, (uint32_t)(0x00000009));
00414     LCDBar = BATTERYLEVEL_3_4;
00415     break;
00416     
00417   /* BATTERYLEVEL_FULL */
00418   case BATTERYLEVEL_FULL:
00419     /* Set BATTERYLEVEL_3_4 on  */
00420     /* Set BatteryLevel_1_4 on  */
00421     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFF6, (uint32_t)(0x00000009));    
00422     /* Set BATTERYLEVEL_FULL on  */
00423     /* Set BatteryLevel_1_2 on  */
00424     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFF6, (uint32_t)(0x00000009));
00425     LCDBar = BATTERYLEVEL_FULL;
00426     break;
00427     
00428   default:
00429     break;
00430   }
00431   
00432   /* Update the LCD display */
00433   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00434 }
00435 
00436 /**
00437   * @brief This function Clear a char in the LCD RAM.
00438   * @param position: Position in the LCD of the caracter to write.
00439   *                  This parameter can be any value in range [1:7].
00440   * @retval None
00441   */
00442 void BSP_LCD_GLASS_ClearChar(uint8_t position)
00443 {
00444   switch (position)
00445   {
00446     /* Clear position 1 on LCD */
00447     case 1:
00448       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFBFF, 0);
00449       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFF3FF, 0);
00450       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFFF1FF, 0);
00451       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFFF1FF, 0);
00452       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFF9FF, 0);
00453       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFFF1FF, 0);
00454       break;
00455 
00456     /* Clear position 2 on LCD */
00457     case 2:
00458       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFF9FFF, 0);
00459       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFF9FFF, 0);
00460       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFF8FFF, 0);
00461       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFF8FFF, 0);
00462       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFF8FFF, 0);
00463       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFF8FFF, 0);
00464       break;
00465 
00466     /* Clear position 3 on LCD */
00467     case 3:
00468       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFCFFFF, 0);
00469       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFCFFFF, 0);
00470       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFC7FFF, 0);
00471       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFC7FFF, 0);
00472       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFC7FFF, 0);
00473       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFC7FFF, 0);
00474       break;
00475 
00476     /* Clear position 4 on LCD */
00477     case 4:
00478       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFE7FFFF, 0);
00479       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFE7FFFF, 0);
00480       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFE3FFFF, 0);
00481       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFE3FFFF, 0);
00482       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFE3FFFF, 0);
00483       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFE3FFFF, 0);
00484       break;
00485 
00486     /* Clear position 5 on LCD */
00487     case 5:
00488       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFF9, 0);
00489       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFF9, 0);
00490       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFFFFF8, 0);
00491       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFFFFF8, 0);
00492       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFFFF8, 0);
00493       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFFFFF8, 0);
00494       break;
00495 
00496     /* Clear position 6 on LCD */
00497     case 6:
00498       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFCF, 0);
00499       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFCF, 0);
00500       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFFFFC7, 0);
00501       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFFFFC7, 0);
00502       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFFFC7, 0);
00503       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFFFFC7, 0);
00504       break;
00505 
00506     /* Clear position 7 on LCD */
00507     case 7:
00508       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFE7F, 0);
00509       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFE7F, 0);
00510       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFFFFE3F, 0);
00511       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFFFFE3F, 0);
00512       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFFE3F, 0);
00513       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFFFFE3F, 0);
00514       break;
00515 
00516     default:
00517       break;
00518   }
00519   /* Update the LCD display */
00520   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00521 }
00522 
00523 /**
00524   * @brief  This function writes a char in the LCD RAM.
00525   * @param  Ch: The character to display.
00526   * @param  Point: A point to add in front of char.
00527   *          This parameter  can be one of the following values:  
00528   *              @arg POINT_OFF: No point to add in front of char.
00529   *              @arg POINT_ON: Add a point in front of char.
00530   * @param  DoublePoint: Flag indicating if a apostrophe has to be add in front 
00531   *                     of displayed character.
00532   *          This parameter  can be one of the following values:
00533   *              @arg DOUBLEPOINT_OFF: No colon to add in back of char.
00534   *              @arg DOUBLEPOINT_ON: Add an colon in back of char.
00535   * @param  Position: Position in the LCD of the caracter to write.
00536   *                   This parameter can be any value in range [1:7].
00537   * @retval None
00538   */
00539 void BSP_LCD_GLASS_DisplayChar(uint8_t* Ch, Point_Typedef Point, DoublePoint_Typedef DoublePoint, uint8_t Position)
00540 {
00541   /*!< LCD Write Char */
00542   BSP_LCD_GLASS_WriteChar(Ch, Point, DoublePoint, Position);
00543 
00544   /* Update the LCD display */
00545   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00546 }
00547 
00548 /**
00549   * @brief  This function writes a char in the LCD RAM.
00550   * @param  ptr: Pointer to string to display on the LCD Glass.
00551   * @retval None
00552   */
00553 void BSP_LCD_GLASS_DisplayString(uint8_t* ptr)
00554 {
00555   uint8_t position = 0x01;
00556 
00557   /*!< Send the string character by character on lCD */
00558   while ((*ptr != 0) & (position < 8))
00559   {
00560     /*!< Display one character on LCD */
00561     BSP_LCD_GLASS_WriteChar(ptr, 0, 0, position);
00562     /*!< Point on the next character */
00563     ptr++;
00564     /*!< Increment the character counter */
00565     position++;
00566   }
00567 }
00568 
00569 /**
00570   * @brief  This function Clears the LCD Glass Text Zone.
00571   * @retval None
00572   */
00573 void BSP_LCD_GLASS_ClearTextZone(void)
00574 {
00575   HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFE49A49, 0);
00576   HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFE49A49, 0);
00577   HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, 0xFFE00000, 0);
00578   HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, 0xFFE00000, 0); 
00579   HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFE00800, 0);
00580   HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, 0xFFE00000, 0);
00581 
00582   /*!< Request LCD RAM update */
00583   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00584 }
00585 
00586 /**
00587   * @brief This function writes a char in the LCD RAM.
00588   * @param ptr: Pointer to string to display on the LCD Glass.
00589   * @retval None
00590   * @note Required preconditions: Char is ASCCI value "Ored" with decimal point or Column flag
00591   */
00592 void BSP_LCD_GLASS_DisplayStrDeci(uint16_t* ptr)
00593 {
00594   uint8_t index = 1;
00595   uint8_t tmpchar;
00596 
00597   /* Send the string character by character on lCD */
00598   while((*ptr != 0) & (index < 8))
00599   {      
00600     tmpchar = (*ptr) & 0x00FF;
00601     
00602     switch((*ptr) & 0xF000)
00603     {
00604     case DOT:
00605       /* Display one character on LCD with decimal point */
00606       BSP_LCD_GLASS_WriteChar(&tmpchar, POINT_ON, DOUBLEPOINT_OFF, index);
00607       break;
00608     case DOUBLE_DOT:
00609       /* Display one character on LCD with decimal point */
00610       BSP_LCD_GLASS_WriteChar(&tmpchar, POINT_OFF, DOUBLEPOINT_ON, index);
00611       break;
00612     default:
00613       BSP_LCD_GLASS_WriteChar(&tmpchar, POINT_OFF, DOUBLEPOINT_OFF, index);    
00614       break;
00615     }/* Point on the next character */
00616     ptr++;
00617     
00618     /* Increment the character counter */
00619     index++;
00620   }
00621 }
00622 
00623 /**
00624   * @brief  This function Clear the whole LCD RAM.
00625   * @retval None
00626   */
00627 void BSP_LCD_GLASS_Clear(void)
00628 {
00629   HAL_LCD_Clear(&LCDHandle); 
00630 }
00631 
00632 /**
00633   * @brief  Display a string in scrolling mode
00634   * @param  ptr: Pointer to string to display on the LCD Glass.
00635   * @param  nScroll: Specifies how many time the message will be scrolled
00636   * @param  ScrollSpeed : Speciifes the speed of the scroll, low value gives
00637   *         higher speed 
00638   * @retval None
00639   * @note    Required preconditions: The LCD should be cleared before to start the
00640   *         write operation.
00641   */
00642 void BSP_LCD_GLASS_ScrollSentence(uint8_t* ptr, uint16_t nScroll, uint16_t ScrollSpeed)
00643 {
00644   uint8_t repetition = 0, nbrchar = 0, sizestr = 0;
00645   uint8_t* ptr1;
00646   uint8_t str[8] = "";
00647   
00648   if(ptr == 0)
00649   {
00650     return;
00651   }
00652   
00653   /* To calculate end of string */
00654   for(ptr1 = ptr, sizestr = 0; *ptr1 != 0; sizestr++, ptr1++);
00655   
00656   ptr1 = ptr;
00657   
00658   BSP_LCD_GLASS_DisplayString(ptr);
00659   HAL_Delay(ScrollSpeed);
00660   
00661   /* To shift the string for scrolling display*/
00662   for (repetition = 0; repetition < nScroll; repetition++)
00663   {
00664     for(nbrchar = 0; nbrchar < sizestr; nbrchar++)
00665     {
00666       *(str) =* (ptr1+((nbrchar)%sizestr));
00667       *(str+1) =* (ptr1+((nbrchar+1)%sizestr));
00668       *(str+2) =* (ptr1+((nbrchar+2)%sizestr));
00669       *(str+3) =* (ptr1+((nbrchar+3)%sizestr));
00670       *(str+4) =* (ptr1+((nbrchar+4)%sizestr));
00671       *(str+5) =* (ptr1+((nbrchar+5)%sizestr));
00672       *(str+6) =* (ptr1+((nbrchar+6)%sizestr));
00673       *(str+7) =* (ptr1+((nbrchar+7)%sizestr));
00674       BSP_LCD_GLASS_ClearTextZone();
00675       BSP_LCD_GLASS_DisplayString(str);
00676       
00677       HAL_Delay(ScrollSpeed);
00678     }  
00679   }  
00680 }
00681 
00682 /**
00683   * @brief  Configure ST Logo display.
00684   * @param  NewState: enable or disable the logo display .
00685   * @retval None
00686   */
00687 void BSP_LCD_GLASS_DisplayLogo(FunctionalState NewState)
00688 {
00689   if (NewState != DISABLE)
00690   {
00691     /* Set logo on  */
00692     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFBF, 0x00000040);
00693   }
00694   else
00695   {
00696     /* Set logo of  */
00697     HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFFBF, 0);
00698   }
00699 
00700   /*!< Request LCD RAM update */
00701   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00702 }
00703 
00704 /**
00705   * @brief  Configure the LCD ArrowDirection.
00706   * @param  ArrowDirection: Specify the ArrowDirection to set.
00707   * @retval None
00708   */
00709 void BSP_LCD_GLASS_ArrowConfig(ArrowDirection_TypeDef ArrowDirection)
00710 {
00711   switch (ArrowDirection)
00712   {
00713     /* ARROWDIRECTION_UP */
00714     case ARROWDIRECTION_UP:
00715       /* Set ARROWDIRECTION_UP on  */
00716       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFEFFF, 0x00001000);
00717       break;
00718 
00719     /* ARROWDIRECTION_LEFT */
00720     case ARROWDIRECTION_LEFT :
00721       /* Set ARROWDIRECTION_LEFT on  */
00722       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFEFFF, 0x00001000);
00723       break;
00724 
00725     /* ARROWDIRECTION_DOWN */
00726     case ARROWDIRECTION_DOWN:
00727       /* Set ARROWDIRECTION_DOWN on  */
00728       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFF7FFF, 0x00008000);
00729       break;
00730 
00731     /* ARROWDIRECTION_RIGHT */
00732     case ARROWDIRECTION_RIGHT:
00733       /* Set ARROWDIRECTION_RIGHT on  */
00734       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFF7FFF, 0x00008000);
00735       break;
00736 
00737     case ARROWDIRECTION_OFF:
00738       /* Set ARROWDIRECTION_UP off  */
00739       /* Set ARROWDIRECTION_RIGHT off  */
00740       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFF6FFF, 0);
00741       /* Set ARROWDIRECTION_LEFT off  */
00742       /* Set ARROWDIRECTION_DOWN off  */
00743       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFF6FFF, 0);
00744       break;
00745 
00746     default:
00747       break;
00748   }
00749 
00750   /*!< Request LCD RAM update */
00751   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00752 }
00753 
00754 /**
00755   * @brief  Configure the LCD Temperature level display .
00756   * @param  Temperature: indicate the Temperature level to set.
00757   * @retval None
00758   */
00759 void BSP_LCD_GLASS_TemperatureConfig(TemperatureLevel_TypeDef Temperature)
00760 {
00761   switch (Temperature)
00762   {
00763     /* Temperature level 1*/
00764     case TEMPERATURELEVEL_1 :
00765       /* Clear Temperature level 5 */
00766       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFDFF, 0);
00767       /* Clear Temperature level 4 and level 2 */
00768       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, 0xFFFFF3FF, 0);
00769       /* Clear Temperature level 1 and level 3 */
00770       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, 0xFFFFF3FF, 0);
00771       /* Set Temperature level 1*/
00772       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFDFF, 0x00000200);
00773       break;
00774 
00775     /* Temperature level 2 */
00776     case TEMPERATURELEVEL_2:
00777       /* Clear Temperature level 4 and level 2 */
00778       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, 0xFFFFF3FF, 0);
00779       /* Clear Temperature level 1 and level 3 */
00780       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, 0xFFFFF3FF, 0);
00781       /* Set Temperature level 1 */
00782       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFDFF, 0x00000200);
00783       /* Set Temperature level 2 */
00784       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFDFF, 0x00000200);
00785       break;
00786 
00787       /* Temperature level 3 */
00788     case TEMPERATURELEVEL_3:
00789       /* Clear Temperature level 1 and level 3 */
00790       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, 0xFFFFF3FF, 0);
00791       /* Set Temperature level 1 */
00792       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFDFF, 0x00000200);
00793       /* Set Temperature level 2 */
00794       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFDFF, 0x00000200);
00795       /* Set Temperature level 3 */
00796       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, 0xFFFFF3FF, 0x00000400);
00797       break;
00798 
00799       /* Temperature level 4*/
00800     case TEMPERATURELEVEL_4:
00801       /* Set Temperature level 1  */
00802       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFDFF, 0x00000200);
00803       /* Set Temperature level 2  */
00804       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFDFF, 0x00000200);
00805       /* Set Temperature level 3 */
00806       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, 0xFFFFF3FF, 0x00000400);
00807       /* Set Temperature level 4 */
00808       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, 0xFFFFF3FF, 0x00000400);
00809       break;
00810 
00811       /* Temperature_2*/
00812     case TEMPERATURELEVEL_5:
00813       /* Set Temperature level 1 */
00814       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFDFF, 0x00000200);
00815       /* Set Temperature level 2 */
00816       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFDFF, 0x00000200);
00817       /* Set Temperature level 3 and level 5 */
00818       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, 0xFFFFF3FF, 0x00000C00);
00819       /* Set Temperature level 4 */
00820       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, 0xFFFFF3FF, 0x00000400);
00821       break;
00822 
00823       /* Temperature_6*/
00824     case  TEMPERATURELEVEL_6:
00825       /* Set Temperature level 1 */
00826       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFDFF, 0x00000200);
00827       /* Set Temperature level 2 */
00828       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFDFF, 0x00000200);
00829       /* Set Temperature level 3 and level 5 */
00830       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, 0xFFFFF3FF, 0x00000C00);
00831       /* Set Temperature level 4 and level 6 */
00832       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, 0xFFFFF3FF, 0x00000C00);
00833       break;
00834 
00835     case TEMPERATURELEVEL_OFF:
00836       /* Clear Temperature level 5 */
00837       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFFDFF, 0);
00838       /* Clear Temperature level 6 */
00839       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFDFF, 0);
00840       /* Clear Temperature level 4 and level 2 */
00841       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, 0xFFFFF3FF, 0);
00842       /* Clear Temperature level 1 and level 3 */
00843       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, 0xFFFFF3FF, 0);
00844       break;
00845 
00846     default:
00847       break;
00848   }
00849 
00850   /*!< Request LCD RAM update */
00851   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00852 }
00853 
00854 /**
00855   * @brief  Configure the LCD Value Unit.
00856   * @param  ValueUnit: indicate the Value Unit to set.
00857   * @retval None
00858   */
00859 void BSP_LCD_GLASS_ValueUnitConfig(ValueUnit_TypeDef ValueUnit)
00860 {
00861   switch (ValueUnit)
00862   {
00863     /* VALUEUNIT MILLIAMPERE*/
00864     case VALUEUNIT_MILLIAMPERE:
00865       /* Set VALUEUNIT_MILLIAMPERE on  */
00866       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFBFFFF, 0x00040000);
00867       break;
00868 
00869     /* VALUEUNIT MICROAMPERE)*/
00870     case VALUEUNIT_MICROAMPERE:
00871       /* Set VALUEUNIT_MICROAMPERE  */
00872       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFBFFFF, 0x00040000);
00873       break;
00874 
00875     /* VALUEUNIT NANOAMPERE*/
00876     case  VALUEUNIT_NANOAMPERE:
00877       /* Set VALUEUNIT_NANOAMPERE on  */
00878       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFFFFBF, 0x00000040);
00879       break;
00880 
00881     case  VALUEUNIT_OFF:
00882       /* Set VALUEUNIT_MILLIAMPERE and VALUEUNIT_NANOAMPERE OFF */
00883       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, 0xFFFBFFBF, 0);
00884       /* Set VALUEUNIT_MICROAMPERE off  */
00885       HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFBFFFF, 0);
00886       break;
00887 
00888     default:
00889       break;
00890   }
00891 
00892   /*!< Request LCD RAM update */
00893   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00894 }
00895 
00896 /**
00897   * @brief  Configure the LCD sign.
00898   * @param  Sign: indicate the sign to set.
00899   * @param  NewState: enable or disable the Digit.
00900   * @retval None
00901   */
00902 void BSP_LCD_GLASS_SignCmd(Sign_TypeDef Sign, FunctionalState NewState)
00903 {
00904   if (NewState != DISABLE)
00905   {
00906     switch (Sign)
00907     {
00908       /* Sign positive */
00909       case SIGN_POSITIVE:
00910         /* Set SIGN_POSITIVE on */
00911         HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFF7FF, 0x00000800);
00912         break;
00913 
00914       /* Sign negative*/
00915       case SIGN_NEGATIVE:
00916         /* Set SIGN_NEGATIVE on */
00917         HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFF7FF, 0x00000800);
00918         break;
00919 
00920       default:
00921         break;
00922     }
00923   }
00924   else
00925   {
00926     switch (Sign)
00927     {
00928       /* Sign positive */
00929       case SIGN_POSITIVE:
00930         /* Set SIGN_POSITIVE off */
00931         HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, 0xFFFFF7FF, 0);
00932         break;
00933 
00934       /* Sign negative */
00935       case SIGN_NEGATIVE:
00936         /* Set SIGN_NEGATIVE off */
00937         HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, 0xFFFFF7FF, 0);
00938         break;
00939 
00940       default:
00941         break;
00942     }
00943   }
00944 
00945   /*!< Request LCD RAM update */
00946   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
00947 }
00948 /**
00949   * @brief  Set Matrix Pixel on.
00950   * @param  PixelRow: Specify Matrix Row.
00951   * @param  PixelColumn: Specify Matrix Column.
00952   * @retval None
00953   */
00954 void BSP_LCD_GLASS_WriteMatrixPixel(PixelRow_TypeDef PixelRow, PixelColumn_TypeDef PixelColumn)
00955 {
00956   switch (PixelRow)
00957   {
00958     case PIXELROW_1:
00959       switch (PixelColumn)
00960       {
00961         case PIXELCOLUMN_1:
00962           /* Position : Row = 1 , Column= 1 */
00963           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000200), (uint32_t)0x00000200);
00964           break;
00965 
00966         case PIXELCOLUMN_2:
00967           /* Position : Row = 1 , Column= 2 */
00968           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00004000), (uint32_t)0x00004000);
00969           break;
00970 
00971         case PIXELCOLUMN_3:
00972           /* Position : Row = 1 , Column= 3 */
00973           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00002000), (uint32_t)0x00002000);
00974           break;
00975 
00976         case PIXELCOLUMN_4:
00977           /* Position : Row = 1 , Column= 4 */
00978           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00001000), (uint32_t)0x00001000);
00979           break;
00980 
00981         case PIXELCOLUMN_5:
00982           /* Position : Row = 1 , Column= 5 */
00983           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00020000), (uint32_t)0x00020000);
00984           break;
00985 
00986         case PIXELCOLUMN_6:
00987           /* Position : Row = 1 , Column= 6 */
00988           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00010000), (uint32_t)0x00010000);
00989           break;
00990 
00991         case PIXELCOLUMN_7:
00992           /* Position : Row = 1 , Column= 7 */
00993           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00008000), (uint32_t)0x00008000);
00994           break;
00995 
00996         case PIXELCOLUMN_8:
00997           /* Position : Row = 1 , Column= 8 */
00998           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00100000), (uint32_t)0x00100000);
00999           break;
01000 
01001         case PIXELCOLUMN_9:
01002           /* Position : Row = 1 , Column= 9 */
01003           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00080000), (uint32_t)0x00080000);
01004           break;
01005 
01006         case PIXELCOLUMN_10:
01007           /* Position : Row = 1 , Column= 10 */
01008           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00040000), (uint32_t)0x00040000);
01009           break;
01010 
01011         case PIXELCOLUMN_11:
01012           /* Position : Row = 1 , Column= 11 */
01013           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01014           break;
01015 
01016         case PIXELCOLUMN_12:
01017           /* Position : Row = 1 , Column= 12 */
01018           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01019           break;
01020 
01021         case PIXELCOLUMN_13:
01022           /* Position : Row = 1 , Column= 13 */
01023           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01024           break;
01025 
01026         case PIXELCOLUMN_14:
01027           /* Position : Row = 1 , Column= 14 */
01028           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01029           break;
01030 
01031         case PIXELCOLUMN_15:
01032           /* Position : Row = 1 , Column= 15 */
01033           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01034           break;
01035 
01036         case PIXELCOLUMN_16:
01037           /* Position : Row = 1 , Column= 16 */
01038           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01039           break;
01040 
01041         case PIXELCOLUMN_17:
01042           /* Position : Row = 1 , Column= 17 */
01043           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000100), (uint32_t)0x00000100);
01044           break;
01045 
01046         case PIXELCOLUMN_18:
01047           /* Position : Row = 1 , Column= 18 */
01048           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01049           break;
01050 
01051         case PIXELCOLUMN_19:
01052           /* Position : Row = 1 , Column= 19 */
01053           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01054           break;
01055 
01056         default:
01057           break;
01058 
01059       }
01060       break;
01061 
01062     case PIXELROW_2:
01063       switch (PixelColumn)
01064       {
01065         case PIXELCOLUMN_1:
01066           /* Position : Row = 2 , Column= 1 */
01067           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000200), (uint32_t)0x00000200);
01068           break;
01069         
01070         case PIXELCOLUMN_2:
01071           /* Position : Row = 2 , Column= 2 */
01072           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00004000), (uint32_t)0x00004000);
01073           break;
01074         
01075         case PIXELCOLUMN_3:
01076           /* Position : Row = 2 , Column= 3 */
01077           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00002000), (uint32_t)0x00002000);
01078           break;
01079         
01080         case PIXELCOLUMN_4:
01081           /* Position : Row = 2 , Column= 4 */
01082           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00001000), (uint32_t)0x00001000);
01083           break;
01084         
01085         case PIXELCOLUMN_5:
01086           /* Position : Row = 2 , Column= 5 */
01087           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00020000), (uint32_t)0x00020000);
01088           break;
01089         
01090         case PIXELCOLUMN_6:
01091           /* Position : Row = 2 , Column= 6 */
01092           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00010000), (uint32_t)0x00010000);
01093           break;
01094         
01095         case PIXELCOLUMN_7:
01096           /* Position : Row = 2 , Column= 7 */
01097           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00008000), (uint32_t)0x00008000);
01098           break;
01099         
01100         case PIXELCOLUMN_8:
01101           /* Position : Row = 2 , Column= 8 */
01102           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00100000), (uint32_t)0x00100000);
01103           break;
01104         
01105         case PIXELCOLUMN_9:
01106           /* Position : Row = 2 , Column= 9 */
01107           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00080000), (uint32_t)0x00080000);
01108           break;
01109         
01110         case PIXELCOLUMN_10:
01111           /* Position : Row = 2 , Column= 10 */
01112           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00040000), (uint32_t)0x00040000);
01113           break;
01114         
01115         case PIXELCOLUMN_11:
01116           /* Position : Row = 2 , Column= 11 */
01117           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01118           break;
01119         
01120         case PIXELCOLUMN_12:
01121           /* Position : Row = 2 , Column= 12 */
01122           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01123           break;
01124         
01125         case PIXELCOLUMN_13:
01126           /* Position : Row = 2 , Column= 13 */
01127           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01128           break;
01129         
01130         case PIXELCOLUMN_14:
01131           /* Position : Row = 2 , Column= 14 */
01132           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01133           break;
01134         
01135         case PIXELCOLUMN_15:
01136           /* Position : Row = 2 , Column= 15 */
01137           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01138           break;
01139         
01140         case PIXELCOLUMN_16:
01141           /* Position : Row = 2 , Column= 16 */
01142           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01143           break;
01144         
01145         case PIXELCOLUMN_17:
01146           /* Position : Row = 2 , Column= 17 */
01147           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000100), (uint32_t)0x00000100);
01148           break;
01149         
01150         case PIXELCOLUMN_18:
01151           /* Position : Row = 2 , Column= 18 */
01152           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01153           break;
01154         
01155         case PIXELCOLUMN_19:
01156           /* Position : Row = 2 , Column= 19 */
01157           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01158           break;
01159         
01160         default:
01161           break;
01162       }
01163       break;
01164 
01165     case PIXELROW_3:
01166       switch (PixelColumn)
01167       {
01168         case PIXELCOLUMN_1:
01169           /* Position : Row = 3 , Column= 1 */
01170           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00200000), (uint32_t)0x00200000);
01171           break;
01172         
01173         case PIXELCOLUMN_2:
01174           /* Position : Row = 3 , Column= 2 */
01175           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00400000), (uint32_t)0x00400000);
01176           break;
01177         
01178         case PIXELCOLUMN_3:
01179           /* Position : Row = 3 , Column= 3 */
01180           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x00800000), (uint32_t)0x00800000);
01181           break;
01182         
01183         case PIXELCOLUMN_4:
01184           /* Position : Row = 3 , Column= 4 */
01185           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x01000000), (uint32_t)0x01000000);
01186           break;
01187         
01188         case PIXELCOLUMN_5:
01189           /* Position : Row = 3 , Column= 5 */
01190           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x02000000), (uint32_t)0x02000000);
01191           break;
01192         
01193         case PIXELCOLUMN_6:
01194           /* Position : Row = 3 , Column= 6 */
01195           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x04000000), (uint32_t)0x04000000);
01196           break;
01197         
01198         case PIXELCOLUMN_7:
01199           /* Position : Row = 3 , Column= 7 */
01200           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x08000000), (uint32_t)0x08000000);
01201           break;
01202         
01203         case PIXELCOLUMN_8:
01204           /* Position : Row = 3 , Column= 8 */
01205           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x10000000), (uint32_t)0x10000000);
01206           break;
01207         
01208         case PIXELCOLUMN_9:
01209           /* Position : Row = 3 , Column= 9*/
01210           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x20000000), (uint32_t)0x20000000);
01211           break;
01212         
01213         case PIXELCOLUMN_10:
01214           /* Position : Row = 3 , Column= 10*/
01215           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x40000000), (uint32_t)0x40000000);
01216           break;
01217         
01218         case PIXELCOLUMN_11:
01219           /* Position : Row = 3 , Column= 11*/
01220           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, ~((uint32_t)0x80000000), (uint32_t)0x80000000);
01221           break;
01222         
01223         case PIXELCOLUMN_12:
01224           /* Position : Row = 3 , Column= 12*/
01225           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01226           break;
01227         
01228         case PIXELCOLUMN_13:
01229           /* Position : Row = 3 , Column= 13*/
01230           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01231           break;
01232         
01233         case PIXELCOLUMN_14:
01234           /* Position : Row = 3 , Column= 14*/
01235           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01236           break;
01237         
01238         case PIXELCOLUMN_15:
01239           /* Position : Row = 3 , Column= 15*/
01240           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01241           break;
01242         
01243         case PIXELCOLUMN_16:
01244           /* Position : Row = 3 , Column= 16*/
01245           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01246           break;
01247         
01248         case PIXELCOLUMN_17:
01249           /* Position : Row = 3 , Column= 17*/
01250           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01251           break;
01252         
01253         case PIXELCOLUMN_18:
01254           /* Position : Row = 3 , Column= 18*/
01255           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01256           break;
01257         
01258         case PIXELCOLUMN_19:
01259           /* Position : Row = 3 , Column= 19 */
01260           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01261           break;
01262 
01263         default:
01264           break;
01265       }
01266       break;
01267 
01268     case PIXELROW_4:
01269       switch (PixelColumn)
01270       {
01271         case PIXELCOLUMN_1:
01272           /* Position : Row = 4 , Column= 1 */
01273           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00200000), (uint32_t)0x00200000);
01274           break;
01275         
01276         case PIXELCOLUMN_2:
01277           /* Position : Row = 4 , Column= 2 */
01278           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00400000), (uint32_t)0x00400000);
01279           break;
01280         
01281         case PIXELCOLUMN_3:
01282           /* Position : Row = 4 , Column= 3 */
01283           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x00800000), (uint32_t)0x00800000);
01284           break;
01285         
01286         case PIXELCOLUMN_4:
01287           /* Position : Row = 4 , Column= 4 */
01288           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x01000000), (uint32_t)0x01000000);
01289           break;
01290         
01291         case PIXELCOLUMN_5:
01292           /* Position : Row = 4 , Column= 5 */
01293           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x02000000), (uint32_t)0x02000000);
01294           break;
01295         
01296         case PIXELCOLUMN_6:
01297           /* Position : Row = 4 , Column= 6 */
01298           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x04000000), (uint32_t)0x04000000);
01299           break;
01300         
01301         case PIXELCOLUMN_7:
01302           /* Position : Row = 4 , Column= 7 */
01303           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x08000000), (uint32_t)0x08000000);
01304           break;
01305         
01306         case PIXELCOLUMN_8:
01307           /* Position : Row = 4 , Column= 8 */
01308           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x10000000), (uint32_t)0x10000000);
01309           break;
01310         
01311         case PIXELCOLUMN_9:
01312           /* Position : Row = 4 , Column= 9*/
01313           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x20000000), (uint32_t)0x20000000);
01314           break;
01315         
01316         case PIXELCOLUMN_10:
01317           /* Position : Row = 4 , Column= 10*/
01318           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x40000000), (uint32_t)0x40000000);
01319           break;
01320         
01321         case PIXELCOLUMN_11:
01322           /* Position : Row = 4 , Column= 11*/
01323           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, ~((uint32_t)0x80000000), (uint32_t)0x80000000);
01324           break;
01325         
01326         case PIXELCOLUMN_12:
01327           /* Position : Row = 4 , Column= 12*/
01328           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01329           break;
01330         
01331         case PIXELCOLUMN_13:
01332           /* Position : Row = 4 , Column= 13*/
01333           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01334           break;
01335         
01336         case PIXELCOLUMN_14:
01337           /* Position : Row = 4 , Column= 14*/
01338           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01339           break;
01340         
01341         case PIXELCOLUMN_15:
01342           /* Position : Row = 4 , Column= 15*/
01343           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01344           break;
01345         
01346         case PIXELCOLUMN_16:
01347           /* Position : Row = 4 , Column= 16*/
01348           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01349           break;
01350         
01351         case PIXELCOLUMN_17:
01352           /* Position : Row = 4 , Column= 17*/
01353           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01354           break;
01355         
01356         case PIXELCOLUMN_18:
01357           /* Position : Row = 4 , Column= 18*/
01358           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01359           break;
01360         
01361         case PIXELCOLUMN_19:
01362           /* Position : Row = 4 , Column= 19 */
01363           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01364           break;
01365 
01366         default:
01367           break;
01368 
01369       }
01370       break;
01371 
01372     case PIXELROW_5:
01373       switch (PixelColumn)
01374       {
01375         case PIXELCOLUMN_1:
01376           /* Position : Row = 5 , Column= 1 */
01377           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x00200000), (uint32_t)0x00200000);
01378           break;
01379         
01380         case PIXELCOLUMN_2:
01381           /* Position : Row = 5 , Column= 2 */
01382           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x00400000), (uint32_t)0x00400000);
01383           break;
01384         
01385         case PIXELCOLUMN_3:
01386           /* Position : Row = 5 , Column= 3 */
01387           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x00800000), (uint32_t)0x00800000);
01388           break;
01389         
01390         case PIXELCOLUMN_4:
01391           /* Position : Row = 5 , Column= 4 */
01392           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x01000000), (uint32_t)0x01000000);
01393           break;
01394         
01395         case PIXELCOLUMN_5:
01396           /* Position : Row = 5 , Column= 5 */
01397           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x02000000), (uint32_t)0x02000000);
01398           break;
01399         
01400         case PIXELCOLUMN_6:
01401           /* Position : Row = 5 , Column= 6 */
01402           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x04000000), (uint32_t)0x04000000);
01403           break;
01404         
01405         case PIXELCOLUMN_7:
01406           /* Position : Row = 5 , Column= 7 */
01407           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x08000000), (uint32_t)0x08000000);
01408           break;
01409         
01410         case PIXELCOLUMN_8:
01411           /* Position : Row = 5 , Column= 8 */
01412           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x10000000), (uint32_t)0x10000000);
01413           break;
01414         
01415         case PIXELCOLUMN_9:
01416           /* Position : Row = 5 , Column= 9*/
01417           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x20000000), (uint32_t)0x20000000);
01418           break;
01419         
01420         case PIXELCOLUMN_10:
01421           /* Position : Row = 5 , Column= 10*/
01422           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x40000000), (uint32_t)0x40000000);
01423           break;
01424         
01425         case PIXELCOLUMN_11:
01426           /* Position : Row = 5 , Column= 11*/
01427           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, ~((uint32_t)0x80000000), (uint32_t)0x80000000);
01428           break;
01429         
01430         case PIXELCOLUMN_12:
01431           /* Position : Row = 5 , Column= 12*/
01432           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01433           break;
01434         
01435         case PIXELCOLUMN_13:
01436           /* Position : Row = 5 , Column= 13*/
01437           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01438           break;
01439         
01440         case PIXELCOLUMN_14:
01441           /* Position : Row = 5 , Column= 14*/
01442           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01443           break;
01444         
01445         case PIXELCOLUMN_15:
01446           /* Position : Row = 5 , Column= 15*/
01447           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01448           break;
01449         
01450         case PIXELCOLUMN_16:
01451           /* Position : Row = 5 , Column= 16*/
01452           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01453           break;
01454         
01455         case PIXELCOLUMN_17:
01456           /* Position : Row = 5 , Column= 17*/
01457           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01458           break;
01459         
01460         case PIXELCOLUMN_18:
01461           /* Position : Row = 5 , Column= 18*/
01462           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01463           break;
01464         
01465         case PIXELCOLUMN_19:
01466           /* Position : Row = 5 , Column= 19 */
01467           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01468           break;
01469 
01470         default:
01471           break;
01472       }
01473       break;
01474 
01475     case PIXELROW_6:
01476       switch (PixelColumn)
01477       {
01478         case PIXELCOLUMN_1:
01479           /* Position : Row = 6 , Column= 1 */
01480           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x00200000), (uint32_t)0x00200000);
01481           break;
01482         
01483         case PIXELCOLUMN_2:
01484           /* Position : Row = 6 , Column= 2 */
01485           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x00400000), (uint32_t)0x00400000);
01486           break;
01487         
01488         case PIXELCOLUMN_3:
01489           /* Position : Row = 6 , Column= 3 */
01490           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x00800000), (uint32_t)0x00800000);
01491           break;
01492         
01493         case PIXELCOLUMN_4:
01494           /* Position : Row = 6 , Column= 4 */
01495           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x01000000), (uint32_t)0x01000000);
01496           break;
01497         
01498         case PIXELCOLUMN_5:
01499           /* Position : Row = 6 , Column= 5 */
01500           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x02000000), (uint32_t)0x02000000);
01501           break;
01502         
01503         case PIXELCOLUMN_6:
01504           /* Position : Row = 6 , Column= 6 */
01505           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x04000000), (uint32_t)0x04000000);
01506           break;
01507         
01508         case PIXELCOLUMN_7:
01509           /* Position : Row = 6 , Column= 7 */
01510           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x08000000), (uint32_t)0x08000000);
01511           break;
01512         
01513         case PIXELCOLUMN_8:
01514           /* Position : Row = 6 , Column= 8 */
01515           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x10000000), (uint32_t)0x10000000);
01516           break;
01517         
01518         case PIXELCOLUMN_9:
01519           /* Position : Row = 6 , Column= 9*/
01520           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x20000000), (uint32_t)0x20000000);
01521           break;
01522         
01523         case PIXELCOLUMN_10:
01524           /* Position : Row = 6 , Column= 10*/
01525           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x40000000), (uint32_t)0x40000000);
01526           break;
01527         
01528         case PIXELCOLUMN_11:
01529           /* Position : Row = 6 , Column= 11*/
01530           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, ~((uint32_t)0x80000000), (uint32_t)0x80000000);
01531           break;
01532         
01533         case PIXELCOLUMN_12:
01534           /* Position : Row = 6 , Column= 12*/
01535           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01536           break;
01537         
01538         case PIXELCOLUMN_13:
01539           /* Position : Row = 6 , Column= 13*/
01540           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01541           break;
01542         
01543         case PIXELCOLUMN_14:
01544           /* Position : Row = 6 , Column= 14*/
01545           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01546           break;
01547         
01548         case PIXELCOLUMN_15:
01549           /* Position : Row = 6 , Column= 15*/
01550           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01551           break;
01552         
01553         case PIXELCOLUMN_16:
01554           /* Position : Row = 6 , Column= 16*/
01555           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01556           break;
01557         
01558         case PIXELCOLUMN_17:
01559           /* Position : Row = 6 , Column= 17*/
01560           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01561           break;
01562         
01563         case PIXELCOLUMN_18:
01564           /* Position : Row = 6 , Column= 18*/
01565           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01566           break;
01567         
01568         case PIXELCOLUMN_19:
01569           /* Position : Row = 6 , Column= 19 */
01570           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01571           break;
01572 
01573         default:
01574           break;
01575       }
01576       break;
01577 
01578     case PIXELROW_7:
01579       switch (PixelColumn)
01580       {
01581         case PIXELCOLUMN_1:
01582           /* Position : Row = 7 , Column =1 */
01583           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x00200000), (uint32_t)0x00200000);
01584           break;
01585         
01586         case PIXELCOLUMN_2:
01587           /* Position : Row = 7 , Column =2 */
01588           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x00400000), (uint32_t)0x00400000);
01589           break;
01590         
01591         case PIXELCOLUMN_3:
01592           /* Position : Row = 7 , Column =3 */
01593           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x00800000), (uint32_t)0x00800000);
01594           break;
01595         
01596         case PIXELCOLUMN_4:
01597           /* Position : Row = 7 , Column =4 */
01598           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x01000000), (uint32_t)0x01000000);
01599           break;
01600         
01601         case PIXELCOLUMN_5:
01602           /* Position : Row = 7 , Column =5 */
01603           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x02000000), (uint32_t)0x02000000);
01604           break;
01605         
01606         case PIXELCOLUMN_6:
01607           /* Position : Row = 7 , Column =6 */
01608           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x04000000), (uint32_t)0x04000000);
01609           break;
01610         
01611         case PIXELCOLUMN_7:
01612           /* Position : Row = 7 , Column =7 */
01613           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x08000000), (uint32_t)0x08000000);
01614           break;
01615         
01616         case PIXELCOLUMN_8:
01617           /* Position : Row = 7 , Column =8 */
01618           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x10000000), (uint32_t)0x10000000);
01619           break;
01620         
01621         case PIXELCOLUMN_9:
01622           /* Position : Row = 7 , Column =9*/
01623           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x20000000), (uint32_t)0x20000000);
01624           break;
01625         
01626         case PIXELCOLUMN_10:
01627           /* Position : Row = 7 , Column =10*/
01628           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x40000000), (uint32_t)0x40000000);
01629           break;
01630         
01631         case PIXELCOLUMN_11:
01632           /* Position : Row = 7 , Column =11*/
01633           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, ~((uint32_t)0x80000000), (uint32_t)0x80000000);
01634           break;
01635         
01636         case PIXELCOLUMN_12:
01637           /* Position : Row = 7 , Column =12*/
01638           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01639           break;
01640         
01641         case PIXELCOLUMN_13:
01642           /* Position : Row = 7 , Column =13*/
01643           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01644           break;
01645         
01646         case PIXELCOLUMN_14:
01647           /* Position : Row = 7 , Column =14*/
01648           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01649           break;
01650         
01651         case PIXELCOLUMN_15:
01652           /* Position : Row = 7 , Column =15*/
01653           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01654           break;
01655         
01656         case PIXELCOLUMN_16:
01657           /* Position : Row = 7 , Column =16*/
01658           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01659           break;
01660         
01661         case PIXELCOLUMN_17:
01662           /* Position : Row = 7 , Column =17*/
01663           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01664           break;
01665         
01666         case PIXELCOLUMN_18:
01667           /* Position : Row = 7 , Column =18*/
01668           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01669           break;
01670         
01671         case PIXELCOLUMN_19:
01672           /* Position : Row = 7 , Column =19 */
01673           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01674           break;
01675 
01676         default:
01677           break;
01678       }
01679       break;
01680 
01681     case PIXELROW_8:
01682       switch (PixelColumn)
01683       {
01684         case PIXELCOLUMN_1:
01685           /* Position : Row = 8 , Column =1 */
01686           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x00200000), (uint32_t)0x00200000);
01687           break;
01688         
01689         case PIXELCOLUMN_2:
01690           /* Position : Row = 8 , Column =2 */
01691           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x00400000), (uint32_t)0x00400000);
01692           break;
01693         
01694         case PIXELCOLUMN_3:
01695           /* Position : Row = 8 , Column =3 */
01696           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x00800000), (uint32_t)0x00800000);
01697           break;
01698         
01699         case PIXELCOLUMN_4:
01700           /* Position : Row = 8 , Column =4 */
01701           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x01000000), (uint32_t)0x01000000);
01702           break;
01703         
01704         case PIXELCOLUMN_5:
01705           /* Position : Row = 8 , Column =5 */
01706           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x02000000), (uint32_t)0x02000000);
01707           break;
01708         
01709         case PIXELCOLUMN_6:
01710           /* Position : Row = 8 , Column =6 */
01711           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x04000000), (uint32_t)0x04000000);
01712           break;
01713         
01714         case PIXELCOLUMN_7:
01715           /* Position : Row = 8 , Column =7 */
01716           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x08000000), (uint32_t)0x08000000);
01717           break;
01718         
01719         case PIXELCOLUMN_8:
01720           /* Position : Row = 8 , Column =8 */
01721           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x10000000), (uint32_t)0x10000000);
01722           break;
01723         
01724         case PIXELCOLUMN_9:
01725           /* Position : Row = 8 , Column =9*/
01726           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x20000000), (uint32_t)0x20000000);
01727           break;
01728         
01729         case PIXELCOLUMN_10:
01730           /* Position : Row = 8 , Column =10*/
01731           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x40000000), (uint32_t)0x40000000);
01732           break;
01733         
01734         case PIXELCOLUMN_11:
01735           /* Position : Row = 8 , Column =11*/
01736           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, ~((uint32_t)0x80000000), (uint32_t)0x80000000);
01737           break;
01738         
01739         case PIXELCOLUMN_12:
01740           /* Position : Row = 8 , Column =12*/
01741           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01742           break;
01743         
01744         case PIXELCOLUMN_13:
01745           /* Position : Row = 8 , Column =13*/
01746           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01747           break;
01748         
01749         case PIXELCOLUMN_14:
01750           /* Position : Row = 8 , Column =14*/
01751           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01752           break;
01753         
01754         case PIXELCOLUMN_15:
01755           /* Position : Row = 8 , Column =15*/
01756           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01757           break;
01758         
01759         case PIXELCOLUMN_16:
01760           /* Position : Row = 8 , Column =16*/
01761           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01762           break;
01763         
01764         case PIXELCOLUMN_17:
01765           /* Position : Row = 8 , Column =17*/
01766           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01767           break;
01768         
01769         case PIXELCOLUMN_18:
01770           /* Position : Row = 8 , Column =18*/
01771           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01772           break;
01773         
01774         case PIXELCOLUMN_19:
01775           /* Position : Row = 8 , Column =19 */
01776           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01777           break;
01778 
01779         default:
01780           break;
01781       }
01782       break;
01783 
01784     case PIXELROW_9:
01785       switch (PixelColumn)
01786       {
01787         case PIXELCOLUMN_1:
01788           /* Position : Row = 9 , Column =1 */
01789           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x00200000), (uint32_t)0x00200000);
01790           break;
01791         
01792         case PIXELCOLUMN_2:
01793           /* Position : Row = 9 , Column =2 */
01794           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x00400000), (uint32_t)0x00400000);
01795           break;
01796         
01797         case PIXELCOLUMN_3:
01798           /* Position : Row = 9 , Column =3 */
01799           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x00800000), (uint32_t)0x00800000);
01800           break;
01801         
01802         case PIXELCOLUMN_4:
01803           /* Position : Row = 9 , Column =4 */
01804           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x01000000), (uint32_t)0x01000000);
01805           break;
01806         
01807         case PIXELCOLUMN_5:
01808           /* Position : Row = 9 , Column =5 */
01809           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x02000000), (uint32_t)0x02000000);
01810           break;
01811         
01812         case PIXELCOLUMN_6:
01813           /* Position : Row = 9 , Column =6 */
01814           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x04000000), (uint32_t)0x04000000);
01815           break;
01816         
01817         case PIXELCOLUMN_7:
01818           /* Position : Row = 9 , Column =7 */
01819           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x08000000), (uint32_t)0x08000000);
01820           break;
01821         
01822         case PIXELCOLUMN_8:
01823           /* Position : Row = 9 , Column =8 */
01824           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x10000000), (uint32_t)0x10000000);
01825           break;
01826         
01827         case PIXELCOLUMN_9:
01828           /* Position : Row = 9 , Column =9*/
01829           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x20000000), (uint32_t)0x20000000);
01830           break;
01831         
01832         case PIXELCOLUMN_10:
01833           /* Position : Row = 9 , Column =10*/
01834           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x40000000), (uint32_t)0x40000000);
01835           break;
01836         
01837         case PIXELCOLUMN_11:
01838           /* Position : Row = 9 , Column =11*/
01839           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, ~((uint32_t)0x80000000), (uint32_t)0x80000000);
01840           break;
01841         
01842         case PIXELCOLUMN_12:
01843           /* Position : Row = 9 , Column =12*/
01844           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01845           break;
01846         
01847         case PIXELCOLUMN_13:
01848           /* Position : Row = 9 , Column =13*/
01849           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01850           break;
01851         
01852         case PIXELCOLUMN_14:
01853           /* Position : Row = 9 , Column =14*/
01854           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01855           break;
01856         
01857         case PIXELCOLUMN_15:
01858           /* Position : Row = 9 , Column =15*/
01859           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01860           break;
01861         
01862         case PIXELCOLUMN_16:
01863           /* Position : Row = 9 , Column =16*/
01864           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01865           break;
01866         
01867         case PIXELCOLUMN_17:
01868           /* Position : Row = 9 , Column =17*/
01869           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01870           break;
01871         
01872         case PIXELCOLUMN_18:
01873           /* Position : Row = 9 , Column =18*/
01874           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01875           break;
01876         
01877         case PIXELCOLUMN_19:
01878           /* Position : Row = 9 , Column =19 */
01879           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01880           break;
01881 
01882         default:
01883           break;
01884       }
01885       break;
01886 
01887     case PIXELROW_10:
01888       switch (PixelColumn)
01889       {
01890         case PIXELCOLUMN_1:
01891           /* Position : Row = 10 , Column= 1 */
01892           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x00200000), (uint32_t)0x00200000);
01893           break;
01894         
01895         case PIXELCOLUMN_2:
01896           /* Position : Row = 10 , Column= 2 */
01897           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x00400000), (uint32_t)0x00400000);
01898           break;
01899         
01900         case PIXELCOLUMN_3:
01901           /* Position : Row = 10 , Column= 3 */
01902           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x00800000), (uint32_t)0x00800000);
01903           break;
01904         
01905         case PIXELCOLUMN_4:
01906           /* Position : Row = 10 , Column= 4 */
01907           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x01000000), (uint32_t)0x01000000);
01908           break;
01909         
01910         case PIXELCOLUMN_5:
01911           /* Position : Row = 10 , Column= 5 */
01912           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x02000000), (uint32_t)0x02000000);
01913           break;
01914         
01915         case PIXELCOLUMN_6:
01916           /* Position : Row = 10 , Column= 6 */
01917           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x04000000), (uint32_t)0x04000000);
01918           break;
01919         
01920         case PIXELCOLUMN_7:
01921           /* Position : Row = 10 , Column= 7 */
01922           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x08000000), (uint32_t)0x08000000);
01923           break;
01924         
01925         case PIXELCOLUMN_8:
01926           /* Position : Row = 10 , Column= 8 */
01927           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x10000000), (uint32_t)0x10000000);
01928           break;
01929         
01930         case PIXELCOLUMN_9:
01931           /* Position : Row = 10 , Column= 9*/
01932           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x20000000), (uint32_t)0x20000000);
01933           break;
01934         
01935         case PIXELCOLUMN_10:
01936           /* Position : Row = 10 , Column= 10*/
01937           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x40000000), (uint32_t)0x40000000);
01938           break;
01939         
01940         case PIXELCOLUMN_11:
01941           /* Position : Row = 10 , Column= 11*/
01942           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, ~((uint32_t)0x80000000), (uint32_t)0x80000000);
01943           break;
01944         
01945         case PIXELCOLUMN_12:
01946           /* Position : Row = 10 , Column= 12*/
01947           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, ~((uint32_t)0x00000001), (uint32_t)0x00000001);
01948           break;
01949         
01950         case PIXELCOLUMN_13:
01951           /* Position : Row = 10 , Column= 13*/
01952           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, ~((uint32_t)0x00000002), (uint32_t)0x00000002);
01953           break;
01954         
01955         case PIXELCOLUMN_14:
01956           /* Position : Row = 10 , Column= 14*/
01957           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, ~((uint32_t)0x00000004), (uint32_t)0x00000004);
01958           break;
01959         
01960         case PIXELCOLUMN_15:
01961           /* Position : Row = 10 , Column= 15*/
01962           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, ~((uint32_t)0x00000008), (uint32_t)0x00000008);
01963           break;
01964         
01965         case PIXELCOLUMN_16:
01966           /* Position : Row = 10 , Column= 16*/
01967           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, ~((uint32_t)0x00000010), (uint32_t)0x00000010);
01968           break;
01969         
01970         case PIXELCOLUMN_17:
01971           /* Position : Row = 10 , Column= 17*/
01972           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, ~((uint32_t)0x00000020), (uint32_t)0x00000020);
01973           break;
01974         
01975         case PIXELCOLUMN_18:
01976           /* Position : Row = 10 , Column= 18*/
01977           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, ~((uint32_t)0x00000040), (uint32_t)0x00000040);
01978           break;
01979         
01980         case PIXELCOLUMN_19:
01981           /* Position : Row = 10 , Column= 19 */
01982           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, ~((uint32_t)0x00000080), (uint32_t)0x00000080);
01983           break;
01984 
01985         default:
01986           break;
01987       }
01988     break;
01989   }
01990 
01991   /*!< Request LCD RAM update */
01992   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
01993 }
01994 
01995 /**
01996   * @brief  Set Matrix Pixel off.
01997   * @param  PixelRow: Specify Matrix Row.
01998   * @param  PixelColumn: Specify Matrix Column.
01999   * @retval None
02000   */
02001 void BSP_LCD_GLASS_ClearMatrixPixel(PixelRow_TypeDef PixelRow, PixelColumn_TypeDef PixelColumn)
02002 {
02003   switch (PixelRow)
02004   {
02005     case PIXELROW_1:
02006       switch (PixelColumn)
02007       {
02008         case PIXELCOLUMN_1:
02009           /* Position : Row = 1 , Column= 1 */
02010           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFDFF, 0);
02011           break;
02012         
02013         case PIXELCOLUMN_2:
02014           /* Position : Row = 1 , Column= 2 */
02015           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFBFFF, 0);
02016           break;
02017         
02018         case PIXELCOLUMN_3:
02019           /* Position : Row = 1 , Column= 3 */
02020           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFDFFF, 0);
02021           break;
02022         
02023         case PIXELCOLUMN_4:
02024           /* Position : Row = 1 , Column= 4 */
02025           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFEFFF, 0);
02026           break;
02027         
02028         case PIXELCOLUMN_5:
02029           /* Position : Row = 1 , Column= 5 */
02030           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFDFFFF, 0);
02031           break;
02032         
02033         case PIXELCOLUMN_6:
02034           /* Position : Row = 1 , Column= 6 */
02035           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFEFFFF, 0);
02036           break;
02037         
02038         case PIXELCOLUMN_7:
02039           /* Position : Row = 1 , Column= 7 */
02040           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFF7FFF, 0);
02041           break;
02042         
02043         case PIXELCOLUMN_8:
02044           /* Position : Row = 1 , Column= 8 */
02045           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFEFFFFF, 0);
02046           break;
02047         
02048         case PIXELCOLUMN_9:
02049           /* Position : Row = 1 , Column= 9 */
02050           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFF7FFFF, 0);
02051           break;
02052         
02053         case PIXELCOLUMN_10:
02054           /* Position : Row = 1 , Column= 10 */
02055           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFBFFFF, 0);
02056           break;
02057         
02058         case PIXELCOLUMN_11:
02059           /* Position : Row = 1 , Column= 11 */
02060           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFFFB, 0);
02061           break;
02062         
02063         case PIXELCOLUMN_12:
02064           /* Position : Row = 1 , Column= 12 */
02065           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFFFD, 0);
02066           break;
02067         
02068         case PIXELCOLUMN_13:
02069           /* Position : Row = 1 , Column= 13 */
02070           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFFFE, 0);
02071           break;
02072         
02073         case PIXELCOLUMN_14:
02074           /* Position : Row = 1 , Column= 14 */
02075           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFFDF, 0);
02076           break;
02077         
02078         case PIXELCOLUMN_15:
02079           /* Position : Row = 1 , Column= 15 */
02080           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFFEF, 0);
02081           break;
02082         
02083         case PIXELCOLUMN_16:
02084           /* Position : Row = 1 , Column= 16 */
02085           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFFF7, 0);
02086           break;
02087         
02088         case PIXELCOLUMN_17:
02089           /* Position : Row = 1 , Column= 17 */
02090           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFEFF, 0);
02091           break;
02092         
02093         case PIXELCOLUMN_18:
02094           /* Position : Row = 1 , Column= 18 */
02095           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFF7F, 0);
02096           break;
02097         
02098         case PIXELCOLUMN_19:
02099           /* Position : Row = 1 , Column= 19 */
02100           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFFFFFBF, 0);
02101           break;
02102 
02103         default:
02104           break;
02105       }
02106       break;
02107 
02108     case PIXELROW_2:
02109 
02110       switch (PixelColumn)
02111       {
02112         case PIXELCOLUMN_1:
02113           /* Position : Row = 2 , Column= 1 */
02114           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFDFF, 0);
02115           break;
02116         
02117         case PIXELCOLUMN_2:
02118           /* Position : Row = 2 , Column= 2 */
02119           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFBFFF, 0);
02120           break;
02121         
02122         case PIXELCOLUMN_3:
02123           /* Position : Row = 2 , Column= 3 */
02124           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFDFFF, 0);
02125           break;
02126         
02127         case PIXELCOLUMN_4:
02128           /* Position : Row = 2 , Column= 4 */
02129           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFEFFF, 0);
02130           break;
02131         
02132         case PIXELCOLUMN_5:
02133           /* Position : Row = 2 , Column= 5 */
02134           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFDFFFF, 0);
02135           break;
02136         
02137         case PIXELCOLUMN_6:
02138           /* Position : Row = 2 , Column= 6 */
02139           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFEFFFF, 0);
02140           break;
02141         
02142         case PIXELCOLUMN_7:
02143           /* Position : Row = 2 , Column= 7 */
02144           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFF7FFF, 0);
02145           break;
02146         
02147         case PIXELCOLUMN_8:
02148           /* Position : Row = 2 , Column= 8 */
02149           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFEFFFFF, 0);
02150           break;
02151         
02152         case PIXELCOLUMN_9:
02153           /* Position : Row = 2 , Column= 9 */
02154           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFF7FFFF, 0);
02155           break;
02156         
02157         case PIXELCOLUMN_10:
02158           /* Position : Row = 2 , Column= 10 */
02159           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFBFFFF, 0);
02160           break;
02161         
02162         case PIXELCOLUMN_11:
02163           /* Position : Row = 2 , Column= 11 */
02164           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFFFB, 0);
02165           break;
02166         
02167         case PIXELCOLUMN_12:
02168           /* Position : Row = 2 , Column= 12 */
02169           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFFFD, 0);
02170           break;
02171         
02172         case PIXELCOLUMN_13:
02173           /* Position : Row = 2 , Column= 13 */
02174           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFFFE, 0);
02175           break;
02176         
02177         case PIXELCOLUMN_14:
02178           /* Position : Row = 2 , Column= 14 */
02179           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFFDF, 0);
02180           break;
02181         
02182         case PIXELCOLUMN_15:
02183           /* Position : Row = 2 , Column= 15 */
02184           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFFEF, 0);
02185           break;
02186         
02187         case PIXELCOLUMN_16:
02188           /* Position : Row = 2 , Column= 16 */
02189           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFFF7, 0);
02190           break;
02191         
02192         case PIXELCOLUMN_17:
02193           /* Position : Row = 2 , Column= 17 */
02194           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFEFF, 0);
02195           break;
02196         
02197         case PIXELCOLUMN_18:
02198           /* Position : Row = 2 , Column= 18 */
02199           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFF7F, 0);
02200           break;
02201         
02202         case PIXELCOLUMN_19:
02203           /* Position : Row = 2 , Column= 19 */
02204           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFFFFFBF, 0);
02205           break;
02206         
02207         default:
02208           break;
02209       }
02210       break;
02211 
02212     case PIXELROW_3:
02213       switch (PixelColumn)
02214       {
02215         case PIXELCOLUMN_1:
02216           /* Position : Row = 3 , Column= 1 */
02217           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFDFFFFF, 0);
02218           break;
02219         
02220         case PIXELCOLUMN_2:
02221           /* Position : Row = 3 , Column= 2 */
02222           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFFBFFFFF, 0);
02223           break;
02224         
02225         case PIXELCOLUMN_3:
02226           /* Position : Row = 3 , Column= 3 */
02227           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFF7FFFFF, 0);
02228           break;
02229         
02230         case PIXELCOLUMN_4:
02231           /* Position : Row = 3 , Column= 4 */
02232           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFEFFFFFF, 0);
02233           break;
02234         
02235         case PIXELCOLUMN_5:
02236           /* Position : Row = 3 , Column= 5 */
02237           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFDFFFFFF, 0);
02238           break;
02239         
02240         case PIXELCOLUMN_6:
02241           /* Position : Row = 3 , Column= 6 */
02242           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xFBFFFFFF, 0);
02243           break;
02244         
02245         case PIXELCOLUMN_7:
02246           /* Position : Row = 3 , Column= 7 */
02247           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xF7FFFFFF, 0);
02248           break;
02249         
02250         case PIXELCOLUMN_8:
02251           /* Position : Row = 3 , Column= 8 */
02252           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xEFFFFFFF, 0);
02253           break;
02254         
02255         case PIXELCOLUMN_9:
02256           /* Position : Row = 3 , Column= 9*/
02257           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xDFFFFFFF, 0);
02258           break;
02259         
02260         case PIXELCOLUMN_10:
02261           /* Position : Row = 3 , Column= 10*/
02262           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0xBFFFFFFF, 0);
02263           break;
02264         
02265         case PIXELCOLUMN_11:
02266           /* Position : Row = 3 , Column= 11*/
02267           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER4, (uint32_t)0x7FFFFFFF, 0);
02268           break;
02269         
02270         case PIXELCOLUMN_12:
02271           /* Position : Row = 3 , Column= 12*/
02272           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, (uint32_t)0xFFFFFFFE, 0);
02273           break;
02274         
02275         case PIXELCOLUMN_13:
02276           /* Position : Row = 3 , Column= 13*/
02277           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, (uint32_t)0xFFFFFFFD, 0);
02278           break;
02279         
02280         case PIXELCOLUMN_14:
02281           /* Position : Row = 3 , Column= 14*/
02282           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, (uint32_t)0xFFFFFFFB, 0);
02283           break;
02284         
02285         case PIXELCOLUMN_15:
02286           /* Position : Row = 3 , Column= 15*/
02287           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, (uint32_t)0xFFFFFFF7, 0);
02288           break;
02289         
02290         case PIXELCOLUMN_16:
02291           /* Position : Row = 3 , Column= 16*/
02292           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, (uint32_t)0xFFFFFFEF, 0);
02293           break;
02294         
02295         case PIXELCOLUMN_17:
02296           /* Position : Row = 3 , Column= 17*/
02297           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, (uint32_t)0xFFFFFFDF, 0);
02298           break;
02299         
02300         case PIXELCOLUMN_18:
02301           /* Position : Row = 3 , Column= 18*/
02302           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, (uint32_t)0xFFFFFFBF, 0);
02303           break;
02304         
02305         case PIXELCOLUMN_19:
02306           /* Position : Row = 3 , Column= 19 */
02307           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER5, (uint32_t)0xFFFFFF7F, 0);
02308           break;
02309 
02310         default:
02311           break;
02312       }
02313       break;
02314 
02315     case PIXELROW_4:
02316       switch (PixelColumn)
02317       {
02318         case PIXELCOLUMN_1:
02319           /* Position : Row = 4 , Column= 1 */
02320           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFDFFFFF, 0);
02321           break;
02322         
02323         case PIXELCOLUMN_2:
02324           /* Position : Row = 4 , Column= 2 */
02325           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFFBFFFFF, 0);
02326           break;
02327         
02328         case PIXELCOLUMN_3:
02329           /* Position : Row = 4 , Column= 3 */
02330           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFF7FFFFF, 0);
02331           break;
02332         
02333         case PIXELCOLUMN_4:
02334           /* Position : Row = 4 , Column= 4 */
02335           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFEFFFFFF, 0);
02336           break;
02337         
02338         case PIXELCOLUMN_5:
02339           /* Position : Row = 4 , Column= 5 */
02340           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFDFFFFFF, 0);
02341           break;
02342         
02343         case PIXELCOLUMN_6:
02344           /* Position : Row = 4 , Column= 6 */
02345           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xFBFFFFFF, 0);
02346           break;
02347         
02348         case PIXELCOLUMN_7:
02349           /* Position : Row = 4 , Column= 7 */
02350           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xF7FFFFFF, 0);
02351           break;
02352         
02353         case PIXELCOLUMN_8:
02354           /* Position : Row = 4 , Column= 8 */
02355           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xEFFFFFFF, 0);
02356           break;
02357         
02358         case PIXELCOLUMN_9:
02359           /* Position : Row = 4 , Column= 9*/
02360           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xDFFFFFFF, 0);
02361           break;
02362         
02363         case PIXELCOLUMN_10:
02364           /* Position : Row = 4 , Column= 10*/
02365           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0xBFFFFFFF, 0);
02366           break;
02367         
02368         case PIXELCOLUMN_11:
02369           /* Position : Row = 4 , Column= 11*/
02370           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER6, (uint32_t)0x7FFFFFFF, 0);
02371           break;
02372         
02373         case PIXELCOLUMN_12:
02374           /* Position : Row = 4 , Column= 12*/
02375           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, (uint32_t)0xFFFFFFFE, 0);
02376           break;
02377         
02378         case PIXELCOLUMN_13:
02379           /* Position : Row = 4 , Column= 13*/
02380           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, (uint32_t)0xFFFFFFFD, 0);
02381           break;
02382         
02383         case PIXELCOLUMN_14:
02384           /* Position : Row = 4 , Column= 14*/
02385           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, (uint32_t)0xFFFFFFFB, 0);
02386           break;
02387         
02388         case PIXELCOLUMN_15:
02389           /* Position : Row = 4 , Column= 15*/
02390           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, (uint32_t)0xFFFFFFF7, 0);
02391           break;
02392         
02393         case PIXELCOLUMN_16:
02394           /* Position : Row = 4 , Column= 16*/
02395           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, (uint32_t)0xFFFFFFEF, 0);
02396           break;
02397         
02398         case PIXELCOLUMN_17:
02399           /* Position : Row = 4 , Column= 17*/
02400           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, (uint32_t)0xFFFFFFDF, 0);
02401           break;
02402         
02403         case PIXELCOLUMN_18:
02404           /* Position : Row = 4 , Column= 18*/
02405           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, (uint32_t)0xFFFFFFBF, 0);
02406           break;
02407         
02408         case PIXELCOLUMN_19:
02409           /* Position : Row = 4 , Column= 19 */
02410           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER7, (uint32_t)0xFFFFFF7F, 0);
02411           break;
02412 
02413         default:
02414           break;
02415       }
02416       break;
02417 
02418     case PIXELROW_5:
02419       switch (PixelColumn)
02420       {
02421         case PIXELCOLUMN_1:
02422           /* Position : Row = 5 , Column= 1 */
02423           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xFFDFFFFF, 0);
02424           break;
02425         
02426         case PIXELCOLUMN_2:
02427           /* Position : Row = 5 , Column= 2 */
02428           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xFFBFFFFF, 0);
02429           break;
02430         
02431         case PIXELCOLUMN_3:
02432           /* Position : Row = 5 , Column= 3 */
02433           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xFF7FFFFF, 0);
02434           break;
02435         
02436         case PIXELCOLUMN_4:
02437           /* Position : Row = 5 , Column= 4 */
02438           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xFEFFFFFF, 0);
02439           break;
02440         
02441         case PIXELCOLUMN_5:
02442           /* Position : Row = 5 , Column= 5 */
02443           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xFDFFFFFF, 0);
02444           break;
02445         
02446         case PIXELCOLUMN_6:
02447           /* Position : Row = 5 , Column= 6 */
02448           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xFBFFFFFF, 0);
02449           break;
02450         
02451         case PIXELCOLUMN_7:
02452           /* Position : Row = 5 , Column= 7 */
02453           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xF7FFFFFF, 0);
02454           break;
02455         
02456         case PIXELCOLUMN_8:
02457           /* Position : Row = 5 , Column= 8 */
02458           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xEFFFFFFF, 0);
02459           break;
02460         
02461         case PIXELCOLUMN_9:
02462           /* Position : Row = 5 , Column= 9*/
02463           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xDFFFFFFF, 0);
02464           break;
02465         
02466         case PIXELCOLUMN_10:
02467           /* Position : Row = 5 , Column= 10*/
02468           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0xBFFFFFFF, 0);
02469           break;
02470         
02471         case PIXELCOLUMN_11:
02472           /* Position : Row = 5 , Column= 11*/
02473           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER0, (uint32_t)0x7FFFFFFF, 0);
02474           break;
02475         
02476         case PIXELCOLUMN_12:
02477           /* Position : Row = 5 , Column= 12*/
02478           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, (uint32_t)0xFFFFFFFE, 0);
02479           break;
02480         
02481         case PIXELCOLUMN_13:
02482           /* Position : Row = 5 , Column= 13*/
02483           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, (uint32_t)0xFFFFFFFD, 0);
02484           break;
02485         
02486         case PIXELCOLUMN_14:
02487           /* Position : Row = 5 , Column= 14*/
02488           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, (uint32_t)0xFFFFFFFB, 0);
02489           break;
02490         
02491         case PIXELCOLUMN_15:
02492           /* Position : Row = 5 , Column= 15*/
02493           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, (uint32_t)0xFFFFFFF7, 0);
02494           break;
02495         
02496         case PIXELCOLUMN_16:
02497           /* Position : Row = 5 , Column= 16*/
02498           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, (uint32_t)0xFFFFFFEF, 0);
02499           break;
02500         
02501         case PIXELCOLUMN_17:
02502           /* Position : Row = 5 , Column= 17*/
02503           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, (uint32_t)0xFFFFFFDF, 0);
02504           break;
02505         
02506         case PIXELCOLUMN_18:
02507           /* Position : Row = 5 , Column= 18*/
02508           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, (uint32_t)0xFFFFFFBF, 0);
02509           break;
02510         
02511         case PIXELCOLUMN_19:
02512           /* Position : Row = 5 , Column= 19 */
02513           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER1, (uint32_t)0xFFFFFF7F, 0);
02514           break;
02515 
02516         default:
02517           break;
02518       }
02519       break;
02520 
02521     case PIXELROW_6:
02522       switch (PixelColumn)
02523       {
02524         case PIXELCOLUMN_1:
02525           /* Position : Row = 6 , Column= 1 */
02526           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xFFDFFFFF, 0);
02527           break;
02528         
02529         case PIXELCOLUMN_2:
02530           /* Position : Row = 6 , Column= 2 */
02531           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xFFBFFFFF, 0);
02532           break;
02533         
02534         case PIXELCOLUMN_3:
02535           /* Position : Row = 6 , Column= 3 */
02536           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xFF7FFFFF, 0);
02537           break;
02538         
02539         case PIXELCOLUMN_4:
02540           /* Position : Row = 6 , Column= 4 */
02541           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xFEFFFFFF, 0);
02542           break;
02543         
02544         case PIXELCOLUMN_5:
02545           /* Position : Row = 6 , Column= 5 */
02546           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xFDFFFFFF, 0);
02547           break;
02548         
02549         case PIXELCOLUMN_6:
02550           /* Position : Row = 6 , Column= 6 */
02551           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xFBFFFFFF, 0);
02552           break;
02553         
02554         case PIXELCOLUMN_7:
02555           /* Position : Row = 6 , Column= 7 */
02556           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xF7FFFFFF, 0);
02557           break;
02558         
02559         case PIXELCOLUMN_8:
02560           /* Position : Row = 6 , Column= 8 */
02561           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xEFFFFFFF, 0);
02562           break;
02563         
02564         case PIXELCOLUMN_9:
02565           /* Position : Row = 6 , Column= 9*/
02566           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xDFFFFFFF, 0);
02567           break;
02568         
02569         case PIXELCOLUMN_10:
02570           /* Position : Row = 6 , Column= 10*/
02571           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0xBFFFFFFF, 0);
02572           break;
02573         
02574         case PIXELCOLUMN_11:
02575           /* Position : Row = 6 , Column= 11*/
02576           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER2, (uint32_t)0x7FFFFFFF, 0);
02577           break;
02578         
02579         case PIXELCOLUMN_12:
02580           /* Position : Row = 6 , Column= 12*/
02581           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, (uint32_t)0xFFFFFFFE, 0);
02582           break;
02583         
02584         case PIXELCOLUMN_13:
02585           /* Position : Row = 6 , Column= 13*/
02586           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, (uint32_t)0xFFFFFFFD, 0);
02587           break;
02588         
02589         case PIXELCOLUMN_14:
02590           /* Position : Row = 6 , Column= 14*/
02591           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, (uint32_t)0xFFFFFFFB, 0);
02592           break;
02593         
02594         case PIXELCOLUMN_15:
02595           /* Position : Row = 6 , Column= 15*/
02596           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, (uint32_t)0xFFFFFFF7, 0);
02597           break;
02598         
02599         case PIXELCOLUMN_16:
02600           /* Position : Row = 6 , Column= 16*/
02601           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, (uint32_t)0xFFFFFFEF, 0);
02602           break;
02603         
02604         case PIXELCOLUMN_17:
02605           /* Position : Row = 6 , Column= 17*/
02606           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, (uint32_t)0xFFFFFFDF, 0);
02607           break;
02608         
02609         case PIXELCOLUMN_18:
02610           /* Position : Row = 6 , Column= 18*/
02611           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, (uint32_t)0xFFFFFFBF, 0);
02612           break;
02613         
02614         case PIXELCOLUMN_19:
02615           /* Position : Row = 6 , Column= 19 */
02616           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER3, (uint32_t)0xFFFFFF7F, 0);
02617           break;
02618 
02619         default:
02620           break;
02621       }
02622       break;
02623 
02624     case PIXELROW_7:
02625       switch (PixelColumn)
02626       {
02627         case PIXELCOLUMN_1:
02628           /* Position : Row = 7 , Column =1 */
02629           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xFFDFFFFF, 0);
02630           break;
02631         
02632         case PIXELCOLUMN_2:
02633           /* Position : Row = 7 , Column =2 */
02634           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xFFBFFFFF, 0);
02635           break;
02636         
02637         case PIXELCOLUMN_3:
02638           /* Position : Row = 7 , Column =3 */
02639           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xFF7FFFFF, 0);
02640           break;
02641         
02642         case PIXELCOLUMN_4:
02643           /* Position : Row = 7 , Column =4 */
02644           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xFEFFFFFF, 0);
02645           break;
02646         
02647         case PIXELCOLUMN_5:
02648           /* Position : Row = 7 , Column =5 */
02649           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xFDFFFFFF, 0);
02650           break;
02651         
02652         case PIXELCOLUMN_6:
02653           /* Position : Row = 7 , Column =6 */
02654           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xFBFFFFFF, 0);
02655           break;
02656         
02657         case PIXELCOLUMN_7:
02658           /* Position : Row = 7 , Column =7 */
02659           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xF7FFFFFF, 0);
02660           break;
02661         
02662         case PIXELCOLUMN_8:
02663           /* Position : Row = 7 , Column =8 */
02664           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xEFFFFFFF, 0);
02665           break;
02666         
02667         case PIXELCOLUMN_9:
02668           /* Position : Row = 7 , Column =9*/
02669           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xDFFFFFFF, 0);
02670           break;
02671         
02672         case PIXELCOLUMN_10:
02673           /* Position : Row = 7 , Column =10*/
02674           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0xBFFFFFFF, 0);
02675           break;
02676         
02677         case PIXELCOLUMN_11:
02678           /* Position : Row = 7 , Column =11*/
02679           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER14, (uint32_t)0x7FFFFFFF, 0);
02680           break;
02681         
02682         case PIXELCOLUMN_12:
02683           /* Position : Row = 7 , Column =12*/
02684           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, (uint32_t)0xFFFFFFFE, 0);
02685           break;
02686         
02687         case PIXELCOLUMN_13:
02688           /* Position : Row = 7 , Column =13*/
02689           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, (uint32_t)0xFFFFFFFD, 0);
02690           break;
02691         
02692         case PIXELCOLUMN_14:
02693           /* Position : Row = 7 , Column =14*/
02694           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, (uint32_t)0xFFFFFFFB, 0);
02695           break;
02696         
02697         case PIXELCOLUMN_15:
02698           /* Position : Row = 7 , Column =15*/
02699           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, (uint32_t)0xFFFFFFF7, 0);
02700           break;
02701         
02702         case PIXELCOLUMN_16:
02703           /* Position : Row = 7 , Column =16*/
02704           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, (uint32_t)0xFFFFFFEF, 0);
02705           break;
02706         
02707         case PIXELCOLUMN_17:
02708           /* Position : Row = 7 , Column =17*/
02709           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, (uint32_t)0xFFFFFFDF, 0);
02710           break;
02711         
02712         case PIXELCOLUMN_18:
02713           /* Position : Row = 7 , Column =18*/
02714           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, (uint32_t)0xFFFFFFBF, 0);
02715           break;
02716         
02717         case PIXELCOLUMN_19:
02718           /* Position : Row = 7 , Column =19 */
02719           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER15, (uint32_t)0xFFFFFF7F, 0);
02720           break;
02721 
02722         default:
02723           break;
02724       }
02725       break;
02726 
02727     case PIXELROW_8:
02728       switch (PixelColumn)
02729         {
02730         case PIXELCOLUMN_1:
02731           /* Position : Row = 8 , Column =1 */
02732           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xFFDFFFFF, 0);
02733           break;
02734         
02735         case PIXELCOLUMN_2:
02736           /* Position : Row = 8 , Column =2 */
02737           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xFFBFFFFF, 0);
02738           break;
02739         
02740         case PIXELCOLUMN_3:
02741           /* Position : Row = 8 , Column =3 */
02742           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xFF7FFFFF, 0);
02743           break;
02744         
02745         case PIXELCOLUMN_4:
02746           /* Position : Row = 8 , Column =4 */
02747           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xFEFFFFFF, 0);
02748           break;
02749         
02750         case PIXELCOLUMN_5:
02751           /* Position : Row = 8 , Column =5 */
02752           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xFDFFFFFF, 0);
02753           break;
02754         
02755         case PIXELCOLUMN_6:
02756           /* Position : Row = 8 , Column =6 */
02757           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xFBFFFFFF, 0);
02758           break;
02759         
02760         case PIXELCOLUMN_7:
02761           /* Position : Row = 8 , Column =7 */
02762           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xF7FFFFFF, 0);
02763           break;
02764         
02765         case PIXELCOLUMN_8:
02766           /* Position : Row = 8 , Column =8 */
02767           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xEFFFFFFF, 0);
02768           break;
02769         
02770         case PIXELCOLUMN_9:
02771           /* Position : Row = 8 , Column =9*/
02772           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xDFFFFFFF, 0);
02773           break;
02774         
02775         case PIXELCOLUMN_10:
02776           /* Position : Row = 8 , Column =10*/
02777           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0xBFFFFFFF, 0);
02778           break;
02779         
02780         case PIXELCOLUMN_11:
02781           /* Position : Row = 8 , Column =11*/
02782           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER12, (uint32_t)0x7FFFFFFF, 0);
02783           break;
02784         
02785         case PIXELCOLUMN_12:
02786           /* Position : Row = 8 , Column =12*/
02787           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, (uint32_t)0xFFFFFFFE, 0);
02788           break;
02789         
02790         case PIXELCOLUMN_13:
02791           /* Position : Row = 8 , Column =13*/
02792           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, (uint32_t)0xFFFFFFFD, 0);
02793           break;
02794         
02795         case PIXELCOLUMN_14:
02796           /* Position : Row = 8 , Column =14*/
02797           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, (uint32_t)0xFFFFFFFB, 0);
02798           break;
02799         
02800         case PIXELCOLUMN_15:
02801           /* Position : Row = 8 , Column =15*/
02802           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, (uint32_t)0xFFFFFFF7, 0);
02803           break;
02804         
02805         case PIXELCOLUMN_16:
02806           /* Position : Row = 8 , Column =16*/
02807           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, (uint32_t)0xFFFFFFEF, 0);
02808           break;
02809         
02810         case PIXELCOLUMN_17:
02811           /* Position : Row = 8 , Column =17*/
02812           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, (uint32_t)0xFFFFFFDF, 0);
02813           break;
02814         
02815         case PIXELCOLUMN_18:
02816           /* Position : Row = 8 , Column =18*/
02817           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, (uint32_t)0xFFFFFFBF, 0);
02818           break;
02819         
02820         case PIXELCOLUMN_19:
02821           /* Position : Row = 8 , Column =19 */
02822           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER13, (uint32_t)0xFFFFFF7F, 0);
02823           break;
02824         
02825           default:
02826           break;
02827         }
02828       break;
02829     
02830     case PIXELROW_9:
02831       switch (PixelColumn)
02832         {
02833         case PIXELCOLUMN_1:
02834           /* Position : Row = 9 , Column =1 */
02835           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xFFDFFFFF, 0);
02836           break;
02837         
02838         case PIXELCOLUMN_2:
02839           /* Position : Row = 9 , Column =2 */
02840           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xFFBFFFFF, 0);
02841           break;
02842         
02843         case PIXELCOLUMN_3:
02844           /* Position : Row = 9 , Column =3 */
02845           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xFF7FFFFF, 0);
02846           break;
02847         
02848         case PIXELCOLUMN_4:
02849           /* Position : Row = 9 , Column =4 */
02850           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xFEFFFFFF, 0);
02851           break;
02852         
02853         case PIXELCOLUMN_5:
02854           /* Position : Row = 9 , Column =5 */
02855           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xFDFFFFFF, 0);
02856           break;
02857         
02858         case PIXELCOLUMN_6:
02859           /* Position : Row = 9 , Column =6 */
02860           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xFBFFFFFF, 0);
02861           break;
02862         
02863         case PIXELCOLUMN_7:
02864           /* Position : Row = 9 , Column =7 */
02865           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xF7FFFFFF, 0);
02866           break;
02867         
02868         case PIXELCOLUMN_8:
02869           /* Position : Row = 9 , Column =8 */
02870           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xEFFFFFFF, 0);
02871           break;
02872         
02873         case PIXELCOLUMN_9:
02874           /* Position : Row = 9 , Column =9*/
02875           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xDFFFFFFF, 0);
02876           break;
02877         
02878         case PIXELCOLUMN_10:
02879           /* Position : Row = 9 , Column =10*/
02880           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0xBFFFFFFF, 0);
02881           break;
02882         
02883         case PIXELCOLUMN_11:
02884           /* Position : Row = 9 , Column =11*/
02885           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER10, (uint32_t)0x7FFFFFFF, 0);
02886           break;
02887         
02888         case PIXELCOLUMN_12:
02889           /* Position : Row = 9 , Column =12*/
02890           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, (uint32_t)0xFFFFFFFE, 0);
02891           break;
02892         
02893         case PIXELCOLUMN_13:
02894           /* Position : Row = 9 , Column =13*/
02895           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, (uint32_t)0xFFFFFFFD, 0);
02896           break;
02897         
02898         case PIXELCOLUMN_14:
02899           /* Position : Row = 9 , Column =14*/
02900           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, (uint32_t)0xFFFFFFFB, 0);
02901           break;
02902         
02903         case PIXELCOLUMN_15:
02904           /* Position : Row = 9 , Column =15*/
02905           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, (uint32_t)0xFFFFFFF7, 0);
02906           break;
02907         
02908         case PIXELCOLUMN_16:
02909           /* Position : Row = 9 , Column =16*/
02910           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, (uint32_t)0xFFFFFFEF, 0);
02911           break;
02912         
02913         case PIXELCOLUMN_17:
02914           /* Position : Row = 9 , Column =17*/
02915           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, (uint32_t)0xFFFFFFDF, 0);
02916           break;
02917         
02918         case PIXELCOLUMN_18:
02919           /* Position : Row = 9 , Column =18*/
02920           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, (uint32_t)0xFFFFFFBF, 0);
02921           break;
02922         
02923         case PIXELCOLUMN_19:
02924           /* Position : Row = 9 , Column =19 */
02925           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER11, (uint32_t)0xFFFFFF7F, 0);
02926           break;
02927         
02928           default:
02929           break;
02930         }
02931       break;
02932     
02933     case PIXELROW_10:
02934       switch (PixelColumn)
02935         {
02936         case PIXELCOLUMN_1:
02937           /* Position : Row = 10 , Column= 1 */
02938           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xFFDFFFFF, 0);
02939           break;
02940         
02941         case PIXELCOLUMN_2:
02942           /* Position : Row = 10 , Column= 2 */
02943           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xFFBFFFFF, 0);
02944           break;
02945         
02946         case PIXELCOLUMN_3:
02947           /* Position : Row = 10 , Column= 3 */
02948           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xFF7FFFFF, 0);
02949           break;
02950         
02951         case PIXELCOLUMN_4:
02952           /* Position : Row = 10 , Column= 4 */
02953           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xFEFFFFFF, 0);
02954           break;
02955         
02956         case PIXELCOLUMN_5:
02957           /* Position : Row = 10 , Column= 5 */
02958           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xFDFFFFFF, 0);
02959           break;
02960         
02961         case PIXELCOLUMN_6:
02962           /* Position : Row = 10 , Column= 6 */
02963           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xFBFFFFFF, 0);
02964           break;
02965         
02966         case PIXELCOLUMN_7:
02967           /* Position : Row = 10 , Column= 7 */
02968           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xF7FFFFFF, 0);
02969           break;
02970         
02971         case PIXELCOLUMN_8:
02972           /* Position : Row = 10 , Column= 8 */
02973           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xEFFFFFFF, 0);
02974           break;
02975         
02976         case PIXELCOLUMN_9:
02977           /* Position : Row = 10 , Column= 9*/
02978           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xDFFFFFFF, 0);
02979           break;
02980         
02981         case PIXELCOLUMN_10:
02982           /* Position : Row = 10 , Column= 10*/
02983           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0xBFFFFFFF, 0);
02984           break;
02985         
02986         case PIXELCOLUMN_11:
02987           /* Position : Row = 10 , Column= 11*/
02988           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER8, (uint32_t)0x7FFFFFFF, 0);
02989           break;
02990         
02991         case PIXELCOLUMN_12:
02992           /* Position : Row = 10 , Column= 12*/
02993           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, (uint32_t)0xFFFFFFFE, 0);
02994           break;
02995         
02996         case PIXELCOLUMN_13:
02997           /* Position : Row = 10 , Column= 13*/
02998           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, (uint32_t)0xFFFFFFFD, 0);
02999           break;
03000         
03001         case PIXELCOLUMN_14:
03002           /* Position : Row = 10 , Column= 14*/
03003           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, (uint32_t)0xFFFFFFFB, 0);
03004           break;
03005         
03006         case PIXELCOLUMN_15:
03007           /* Position : Row = 10 , Column= 15*/
03008           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, (uint32_t)0xFFFFFFF7, 0);
03009           break;
03010         
03011         case PIXELCOLUMN_16:
03012           /* Position : Row = 10 , Column= 16*/
03013           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, (uint32_t)0xFFFFFFEF, 0);
03014           break;
03015         
03016         case PIXELCOLUMN_17:
03017           /* Position : Row = 10 , Column= 17*/
03018           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, (uint32_t)0xFFFFFFDF, 0);
03019           break;
03020         
03021         case PIXELCOLUMN_18:
03022           /* Position : Row = 10 , Column= 18*/
03023           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, (uint32_t)0xFFFFFFBF, 0);
03024           break;
03025         
03026         case PIXELCOLUMN_19:
03027           /* Position : Row = 10 , Column= 19 */
03028           HAL_LCD_Write(&LCDHandle, LCD_RAM_REGISTER9, (uint32_t)0xFFFFFF7F, 0);
03029           break;
03030         
03031           default:
03032           break;
03033         }
03034       break;
03035   }
03036 
03037   /*!< Request LCD RAM update */
03038   HAL_LCD_UpdateDisplayRequest(&LCDHandle);
03039 }
03040 
03041 /**
03042   * @}
03043   */
03044 
03045 /** @addtogroup STM32L152D_EVAL_LCD_Private_Functions
03046   * @{
03047   */
03048 
03049 /**
03050   * @brief  LCD MSP Init.
03051   * @param  hlcd: LCD handle
03052   * @retval None
03053   */
03054 static void LCD_MspInit(LCD_HandleTypeDef *hlcd)
03055 {
03056   GPIO_InitTypeDef  gpioinitstruct = {0};
03057   RCC_OscInitTypeDef oscinitstruct = {0};
03058   
03059   /*##-1- Enable PWR  peripheral Clock #######################################*/
03060   __HAL_RCC_PWR_CLK_ENABLE();
03061   
03062   /*##-2- Allow Access and Reset the Backup Domaine ##########################*/ 
03063   /* Allow Access to Backup Domaine */
03064   HAL_PWR_EnableBkUpAccess();
03065 
03066   /* Reset the Backup Domaine */
03067   __HAL_RCC_BACKUPRESET_FORCE(); 
03068   __HAL_RCC_BACKUPRESET_RELEASE();
03069   
03070   /*##-3- Configue LSE as RTC clock soucre ###################################*/ 
03071   oscinitstruct.OscillatorType =  RCC_OSCILLATORTYPE_LSE;
03072   oscinitstruct.PLL.PLLState = RCC_PLL_NONE;
03073   oscinitstruct.LSEState = RCC_LSE_ON;
03074   if(HAL_RCC_OscConfig(&oscinitstruct) != HAL_OK)
03075   { 
03076     while(1);
03077   }
03078  __HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE);
03079 
03080 
03081   /*##-4- Enable LCD GPIO Clocks #############################################*/
03082   __HAL_RCC_GPIOA_CLK_ENABLE();
03083   __HAL_RCC_GPIOB_CLK_ENABLE();
03084   __HAL_RCC_GPIOC_CLK_ENABLE();
03085   __HAL_RCC_GPIOD_CLK_ENABLE();
03086   __HAL_RCC_GPIOE_CLK_ENABLE();
03087   
03088   /*##-5- Configure peripheral GPIO ##########################################*/
03089   /* Configure Output for LCD */
03090   /* Port A */  
03091   gpioinitstruct.Pin       = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_6 | \
03092                              GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | \
03093                              GPIO_PIN_15;
03094   gpioinitstruct.Mode      = GPIO_MODE_AF_PP;
03095   gpioinitstruct.Pull      = GPIO_NOPULL;
03096   gpioinitstruct.Speed     = GPIO_SPEED_FREQ_HIGH;
03097   gpioinitstruct.Alternate = GPIO_AF11_LCD;
03098   HAL_GPIO_Init(GPIOA, &gpioinitstruct);
03099   
03100   
03101   /* Configure Output for LCD */
03102   /* Port B */  
03103   gpioinitstruct.Pin       = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_3 | GPIO_PIN_4 | \
03104                              GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | \
03105                              GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | \
03106                              GPIO_PIN_15;
03107   HAL_GPIO_Init(GPIOB, &gpioinitstruct);
03108   
03109   
03110   /* Configure Output for LCD */
03111   /* Port C*/  
03112   gpioinitstruct.Pin       = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | \
03113                              GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | \
03114                              GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | \
03115                              GPIO_PIN_12;
03116   HAL_GPIO_Init(GPIOC, &gpioinitstruct);
03117   
03118   /* Configure Output for LCD */
03119   /* Port D*/  
03120   gpioinitstruct.Pin       = GPIO_PIN_2 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | \
03121                              GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | \
03122                              GPIO_PIN_15;
03123   HAL_GPIO_Init(GPIOD, &gpioinitstruct);
03124   
03125   /* Configure Output for LCD */
03126   /* Port E*/  
03127   gpioinitstruct.Pin       = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3;
03128   HAL_GPIO_Init(GPIOE, &gpioinitstruct);
03129   
03130   /*##-6- Enable LCD peripheral Clock ########################################*/
03131   __HAL_RCC_LCD_CLK_ENABLE();
03132 }
03133 
03134 /**
03135   * @brief  Converts an ascii char to the a LCD Digit (previous coding).
03136   * @param  c: a char to display.
03137   * @param  Point: a point to add in front of a char
03138   *         This parameter can be: POINT_OFF or POINT_ON
03139   * @param  DoublePoint: flag indicating if Double Point has to be added in front
03140   *         of the displayed character.
03141   *         This parameter can be: DOUBLEPOINT_ON or DOUBLEPOINT_OFF.
03142   * @retval None
03143   */
03144 static void Convert(uint8_t* c, Point_Typedef Point, DoublePoint_Typedef DoublePoint)
03145 {
03146   uint32_t ch = 0 , tmp = 0;
03147   uint8_t i = 0;
03148 
03149   /* The character c is a letter in upper case*/
03150   if ((*c < (uint8_t)ASCII_CHAR_LEFT_OPEN_BRACKET)&(*c > (uint8_t)ASCII_CHAR_AT_SYMBOL))
03151   {
03152     ch = LetterMap[*c-(uint8_t)ASCII_CHAR_A];
03153   }
03154   /* The character c is a number*/
03155   if ((*c < (uint8_t)ASCII_CHAR_COLON)&(*c > (uint8_t)ASCII_CHAR_FORWARD_SLASH))
03156   {
03157     ch = NumberMap[*c-(uint8_t)ASCII_CHAR_0];
03158   }
03159   /* The character c is a space character */
03160   if (*c == (uint8_t)ASCII_CHAR_SPACE)
03161   {
03162     ch = (uint32_t)0x00;
03163   }
03164   /* Set the Q pixel in the character that can be displayed if the point is on */
03165   if (Point == POINT_ON)
03166   {
03167     ch |= (uint32_t)0x00400000;
03168   }
03169 
03170   /* Set the P pixel in the character that can be displayed if the double point is on */
03171   if (DoublePoint == DOUBLEPOINT_ON)
03172   {
03173     ch |= (uint32_t)0x00000040;
03174   }
03175 
03176   for (i = 0;i < 6; i++)
03177   {
03178     tmp = ch & Mask[i];
03179     Digit[i] = (uint8_t)(tmp >> (uint8_t)Shift[i]);
03180   }
03181 }
03182 
03183 
03184 /**
03185   * @}
03186   */
03187 
03188 /**
03189   * @}
03190   */
03191 
03192 /**
03193   * @}
03194   */
03195 
03196 /**
03197   * @}
03198   */
03199 
03200 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
03201 
Generated on Thu Aug 24 2017 17:57:47 for STM32L152D_EVAL BSP User Manual by   doxygen 1.7.6.1