STM32L476G_EVAL BSP User Manual: stm32l476g_eval_glass_lcd.c Source File

STM32L476G_EVAL BSP

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