Don't try reading device params in bad USB modes.
[fw/stlink] / example / libstm32l_discovery / inc / stm32l1xx_lcd.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32l1xx_lcd.h\r
4   * @author  MCD Application Team\r
5   * @version V1.0.0\r
6   * @date    31-December-2010\r
7   * @brief   This file contains all the functions prototypes for the LCD firmware \r
8   *          library.\r
9   ******************************************************************************\r
10   * @attention\r
11   *\r
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE\r
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY\r
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING\r
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE\r
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18   *\r
19   * <h2><center>&copy; COPYRIGHT 2010 STMicroelectronics</center></h2>\r
20   ******************************************************************************  \r
21   */ \r
22 \r
23 /* Define to prevent recursive inclusion -------------------------------------*/\r
24 #ifndef __STM32L1xx_LCD_H\r
25 #define __STM32L1xx_LCD_H\r
26 \r
27 #ifdef __cplusplus\r
28  extern "C" {\r
29 #endif\r
30 \r
31 /* Includes ------------------------------------------------------------------*/\r
32 #include "stm32l1xx.h"\r
33 \r
34 /** @addtogroup STM32L1xx_StdPeriph_Driver\r
35   * @{\r
36   */\r
37 \r
38 /** @addtogroup LCD\r
39   * @{\r
40   */ \r
41 \r
42 /* Exported types ------------------------------------------------------------*/\r
43  \r
44 /** \r
45   * @brief  LCD Init structure definition  \r
46   */\r
47 \r
48 typedef struct\r
49 {\r
50   uint32_t LCD_Prescaler;     /*!< Configures the LCD Prescaler. \r
51                                    This parameter can be one value of @ref LCD_Prescaler */\r
52   uint32_t LCD_Divider;       /*!< Configures the LCD Divider.\r
53                                   This parameter can be one value of @ref LCD_Divider */\r
54   uint32_t LCD_Duty;          /*!< Configures the LCD Duty.\r
55                                   This parameter can be one value of @ref LCD_Duty */\r
56   uint32_t LCD_Bias;          /*!< Configures the LCD Bias.\r
57                                   This parameter can be one value of @ref LCD_Bias */ \r
58   uint32_t LCD_VoltageSource; /*!< Selects the LCD Voltage source.\r
59                                   This parameter can be one value of @ref LCD_Voltage_Source */\r
60 }LCD_InitTypeDef;\r
61 \r
62 \r
63 /* Exported constants --------------------------------------------------------*/\r
64 \r
65 /** @defgroup LCD_Exported_Constants\r
66   * @{\r
67   */\r
68 \r
69 /** @defgroup LCD_Prescaler \r
70   * @{\r
71   */\r
72 \r
73 #define LCD_Prescaler_1        ((uint32_t)0x00000000)  /*!< CLKPS = LCDCLK        */\r
74 #define LCD_Prescaler_2        ((uint32_t)0x00400000)  /*!< CLKPS = LCDCLK/2      */\r
75 #define LCD_Prescaler_4        ((uint32_t)0x00800000)  /*!< CLKPS = LCDCLK/4      */\r
76 #define LCD_Prescaler_8        ((uint32_t)0x00C00000)  /*!< CLKPS = LCDCLK/8      */\r
77 #define LCD_Prescaler_16       ((uint32_t)0x01000000)  /*!< CLKPS = LCDCLK/16     */\r
78 #define LCD_Prescaler_32       ((uint32_t)0x01400000)  /*!< CLKPS = LCDCLK/32     */\r
79 #define LCD_Prescaler_64       ((uint32_t)0x01800000)  /*!< CLKPS = LCDCLK/64     */\r
80 #define LCD_Prescaler_128      ((uint32_t)0x01C00000)  /*!< CLKPS = LCDCLK/128    */\r
81 #define LCD_Prescaler_256      ((uint32_t)0x02000000)  /*!< CLKPS = LCDCLK/256    */\r
82 #define LCD_Prescaler_512      ((uint32_t)0x02400000)  /*!< CLKPS = LCDCLK/512    */\r
83 #define LCD_Prescaler_1024     ((uint32_t)0x02800000)  /*!< CLKPS = LCDCLK/1024   */\r
84 #define LCD_Prescaler_2048     ((uint32_t)0x02C00000)  /*!< CLKPS = LCDCLK/2048   */\r
85 #define LCD_Prescaler_4096     ((uint32_t)0x03000000)  /*!< CLKPS = LCDCLK/4096   */\r
86 #define LCD_Prescaler_8192     ((uint32_t)0x03400000)  /*!< CLKPS = LCDCLK/8192   */\r
87 #define LCD_Prescaler_16384    ((uint32_t)0x03800000)  /*!< CLKPS = LCDCLK/16384  */\r
88 #define LCD_Prescaler_32768    ((uint32_t)0x03C00000)  /*!< CLKPS = LCDCLK/32768  */\r
89 \r
90 #define IS_LCD_PRESCALER(PRESCALER)    (((PRESCALER) == LCD_Prescaler_1) || \\r
91                                         ((PRESCALER) == LCD_Prescaler_2) || \\r
92                                         ((PRESCALER) == LCD_Prescaler_4) || \\r
93                                         ((PRESCALER) == LCD_Prescaler_8) || \\r
94                                         ((PRESCALER) == LCD_Prescaler_16) || \\r
95                                         ((PRESCALER) == LCD_Prescaler_32) || \\r
96                                         ((PRESCALER) == LCD_Prescaler_64) || \\r
97                                         ((PRESCALER) == LCD_Prescaler_128) || \\r
98                                         ((PRESCALER) == LCD_Prescaler_256) || \\r
99                                         ((PRESCALER) == LCD_Prescaler_512) || \\r
100                                         ((PRESCALER) == LCD_Prescaler_1024) || \\r
101                                         ((PRESCALER) == LCD_Prescaler_2048) || \\r
102                                         ((PRESCALER) == LCD_Prescaler_4096) || \\r
103                                         ((PRESCALER) == LCD_Prescaler_8192) || \\r
104                                         ((PRESCALER) == LCD_Prescaler_16384) || \\r
105                                         ((PRESCALER) == LCD_Prescaler_32768))\r
106 \r
107 /**\r
108   * @}\r
109   */\r
110   \r
111 /** @defgroup LCD_Divider \r
112   * @{\r
113   */\r
114 \r
115 #define LCD_Divider_16    ((uint32_t)0x00000000)  /*!< LCD frequency = CLKPS/16 */\r
116 #define LCD_Divider_17    ((uint32_t)0x00040000)  /*!< LCD frequency = CLKPS/17 */\r
117 #define LCD_Divider_18    ((uint32_t)0x00080000)  /*!< LCD frequency = CLKPS/18 */\r
118 #define LCD_Divider_19    ((uint32_t)0x000C0000)  /*!< LCD frequency = CLKPS/19 */\r
119 #define LCD_Divider_20    ((uint32_t)0x00100000)  /*!< LCD frequency = CLKPS/20 */\r
120 #define LCD_Divider_21    ((uint32_t)0x00140000)  /*!< LCD frequency = CLKPS/21 */\r
121 #define LCD_Divider_22    ((uint32_t)0x00180000)  /*!< LCD frequency = CLKPS/22 */\r
122 #define LCD_Divider_23    ((uint32_t)0x001C0000)  /*!< LCD frequency = CLKPS/23 */\r
123 #define LCD_Divider_24    ((uint32_t)0x00200000)  /*!< LCD frequency = CLKPS/24 */\r
124 #define LCD_Divider_25    ((uint32_t)0x00240000)  /*!< LCD frequency = CLKPS/25 */\r
125 #define LCD_Divider_26    ((uint32_t)0x00280000)  /*!< LCD frequency = CLKPS/26 */\r
126 #define LCD_Divider_27    ((uint32_t)0x002C0000)  /*!< LCD frequency = CLKPS/27 */\r
127 #define LCD_Divider_28    ((uint32_t)0x00300000)  /*!< LCD frequency = CLKPS/28 */\r
128 #define LCD_Divider_29    ((uint32_t)0x00340000)  /*!< LCD frequency = CLKPS/29 */\r
129 #define LCD_Divider_30    ((uint32_t)0x00380000)  /*!< LCD frequency = CLKPS/30 */\r
130 #define LCD_Divider_31    ((uint32_t)0x003C0000)  /*!< LCD frequency = CLKPS/31 */\r
131 \r
132 #define IS_LCD_DIVIDER(DIVIDER)    (((DIVIDER) == LCD_Divider_16) || \\r
133                                     ((DIVIDER) == LCD_Divider_17) || \\r
134                                     ((DIVIDER) == LCD_Divider_18) || \\r
135                                     ((DIVIDER) == LCD_Divider_19) || \\r
136                                     ((DIVIDER) == LCD_Divider_20) || \\r
137                                     ((DIVIDER) == LCD_Divider_21) || \\r
138                                     ((DIVIDER) == LCD_Divider_22) || \\r
139                                     ((DIVIDER) == LCD_Divider_23) || \\r
140                                     ((DIVIDER) == LCD_Divider_24) || \\r
141                                     ((DIVIDER) == LCD_Divider_25) || \\r
142                                     ((DIVIDER) == LCD_Divider_26) || \\r
143                                     ((DIVIDER) == LCD_Divider_27) || \\r
144                                     ((DIVIDER) == LCD_Divider_28) || \\r
145                                     ((DIVIDER) == LCD_Divider_29) || \\r
146                                     ((DIVIDER) == LCD_Divider_30) || \\r
147                                     ((DIVIDER) == LCD_Divider_31))\r
148 \r
149 /**\r
150   * @}\r
151   */\r
152 \r
153 \r
154 /** @defgroup LCD_Duty \r
155   * @{\r
156   */\r
157   \r
158 #define LCD_Duty_Static                 ((uint32_t)0x00000000) /*!< Static duty */\r
159 #define LCD_Duty_1_2                    ((uint32_t)0x00000004) /*!< 1/2 duty    */\r
160 #define LCD_Duty_1_3                    ((uint32_t)0x00000008) /*!< 1/3 duty    */\r
161 #define LCD_Duty_1_4                    ((uint32_t)0x0000000C) /*!< 1/4 duty    */\r
162 #define LCD_Duty_1_8                    ((uint32_t)0x00000010) /*!< 1/4 duty    */\r
163 \r
164 #define IS_LCD_DUTY(DUTY) (((DUTY) == LCD_Duty_Static) || \\r
165                            ((DUTY) == LCD_Duty_1_2) || \\r
166                            ((DUTY) == LCD_Duty_1_3) || \\r
167                            ((DUTY) == LCD_Duty_1_4) || \\r
168                            ((DUTY) == LCD_Duty_1_8))\r
169 \r
170 /**\r
171   * @}\r
172   */ \r
173   \r
174 \r
175 /** @defgroup LCD_Bias \r
176   * @{\r
177   */\r
178   \r
179 #define LCD_Bias_1_4                    ((uint32_t)0x00000000)  /*!< 1/4 Bias */\r
180 #define LCD_Bias_1_2                    LCD_CR_BIAS_0           /*!< 1/2 Bias */\r
181 #define LCD_Bias_1_3                    LCD_CR_BIAS_1           /*!< 1/3 Bias */\r
182 \r
183 #define IS_LCD_BIAS(BIAS) (((BIAS) == LCD_Bias_1_4) || \\r
184                            ((BIAS) == LCD_Bias_1_2) || \\r
185                            ((BIAS) == LCD_Bias_1_3))\r
186 /**\r
187   * @}\r
188   */ \r
189     \r
190 /** @defgroup LCD_Voltage_Source \r
191   * @{\r
192   */\r
193   \r
194 #define LCD_VoltageSource_Internal      ((uint32_t)0x00000000)  /*!< Internal voltage source for the LCD */\r
195 #define LCD_VoltageSource_External      LCD_CR_VSEL             /*!< External voltage source for the LCD */\r
196 \r
197 #define IS_LCD_VOLTAGE_SOURCE(SOURCE) (((SOURCE) == LCD_VoltageSource_Internal) || \\r
198                                        ((SOURCE) == LCD_VoltageSource_External))\r
199                            \r
200 /**\r
201   * @}\r
202   */  \r
203 \r
204 /** @defgroup LCD_Interrupts \r
205   * @{\r
206   */\r
207 #define LCD_IT_SOF                      LCD_FCR_SOFIE\r
208 #define LCD_IT_UDD                      LCD_FCR_UDDIE\r
209 \r
210 #define IS_LCD_IT(IT) ((((IT) & (uint32_t)0xFFFFFFF5) == 0x00) && ((IT) != 0x00))\r
211 \r
212 #define IS_LCD_GET_IT(IT) (((IT) == LCD_IT_SOF) || ((IT) == LCD_IT_UDD))\r
213  \r
214 /**\r
215   * @}\r
216   */\r
217 \r
218 /** @defgroup LCD_PulseOnDuration \r
219   * @{\r
220   */\r
221 \r
222 #define LCD_PulseOnDuration_0           ((uint32_t)0x00000000) /*!< Pulse ON duration = 0 pulse   */\r
223 #define LCD_PulseOnDuration_1           ((uint32_t)0x00000010) /*!< Pulse ON duration = 1/CK_PS  */\r
224 #define LCD_PulseOnDuration_2           ((uint32_t)0x00000020) /*!< Pulse ON duration = 2/CK_PS  */\r
225 #define LCD_PulseOnDuration_3           ((uint32_t)0x00000030) /*!< Pulse ON duration = 3/CK_PS  */\r
226 #define LCD_PulseOnDuration_4           ((uint32_t)0x00000040) /*!< Pulse ON duration = 4/CK_PS  */\r
227 #define LCD_PulseOnDuration_5           ((uint32_t)0x00000050) /*!< Pulse ON duration = 5/CK_PS  */\r
228 #define LCD_PulseOnDuration_6           ((uint32_t)0x00000060) /*!< Pulse ON duration = 6/CK_PS  */\r
229 #define LCD_PulseOnDuration_7           ((uint32_t)0x00000070) /*!< Pulse ON duration = 7/CK_PS  */\r
230 \r
231 #define IS_LCD_PULSE_ON_DURATION(DURATION) (((DURATION) == LCD_PulseOnDuration_0) || \\r
232                                             ((DURATION) == LCD_PulseOnDuration_1) || \\r
233                                             ((DURATION) == LCD_PulseOnDuration_2) || \\r
234                                             ((DURATION) == LCD_PulseOnDuration_3) || \\r
235                                             ((DURATION) == LCD_PulseOnDuration_4) || \\r
236                                             ((DURATION) == LCD_PulseOnDuration_5) || \\r
237                                             ((DURATION) == LCD_PulseOnDuration_6) || \\r
238                                             ((DURATION) == LCD_PulseOnDuration_7))\r
239 /**\r
240   * @}\r
241   */\r
242 \r
243 \r
244 /** @defgroup LCD_DeadTime \r
245   * @{\r
246   */\r
247 \r
248 #define LCD_DeadTime_0                  ((uint32_t)0x00000000) /*!< No dead Time  */\r
249 #define LCD_DeadTime_1                  ((uint32_t)0x00000080) /*!< One Phase between different couple of Frame   */\r
250 #define LCD_DeadTime_2                  ((uint32_t)0x00000100) /*!< Two Phase between different couple of Frame   */\r
251 #define LCD_DeadTime_3                  ((uint32_t)0x00000180) /*!< Three Phase between different couple of Frame */\r
252 #define LCD_DeadTime_4                  ((uint32_t)0x00000200) /*!< Four Phase between different couple of Frame  */\r
253 #define LCD_DeadTime_5                  ((uint32_t)0x00000280) /*!< Five Phase between different couple of Frame  */\r
254 #define LCD_DeadTime_6                  ((uint32_t)0x00000300) /*!< Six Phase between different couple of Frame   */\r
255 #define LCD_DeadTime_7                  ((uint32_t)0x00000380) /*!< Seven Phase between different couple of Frame */\r
256 \r
257 #define IS_LCD_DEAD_TIME(TIME) (((TIME) == LCD_DeadTime_0) || \\r
258                                 ((TIME) == LCD_DeadTime_1) || \\r
259                                 ((TIME) == LCD_DeadTime_2) || \\r
260                                 ((TIME) == LCD_DeadTime_3) || \\r
261                                 ((TIME) == LCD_DeadTime_4) || \\r
262                                 ((TIME) == LCD_DeadTime_5) || \\r
263                                 ((TIME) == LCD_DeadTime_6) || \\r
264                                 ((TIME) == LCD_DeadTime_7))\r
265 /**\r
266   * @}\r
267   */\r
268 \r
269 /** @defgroup LCD_BlinkMode \r
270   * @{\r
271   */\r
272 \r
273 #define LCD_BlinkMode_Off               ((uint32_t)0x00000000) /*!< Blink disabled            */\r
274 #define LCD_BlinkMode_SEG0_COM0         ((uint32_t)0x00010000) /*!< Blink enabled on SEG[0], COM[0] (1 pixel)   */\r
275 #define LCD_BlinkMode_SEG0_AllCOM       ((uint32_t)0x00020000) /*!< Blink enabled on SEG[0], all COM (up to \r
276                                                                     8 pixels according to the programmed duty)  */\r
277 #define LCD_BlinkMode_AllSEG_AllCOM     ((uint32_t)0x00030000) /*!< Blink enabled on all SEG and all COM (all pixels)  */\r
278 \r
279 #define IS_LCD_BLINK_MODE(MODE) (((MODE) == LCD_BlinkMode_Off) || \\r
280                                  ((MODE) == LCD_BlinkMode_SEG0_COM0) || \\r
281                                  ((MODE) == LCD_BlinkMode_SEG0_AllCOM) || \\r
282                                  ((MODE) == LCD_BlinkMode_AllSEG_AllCOM))\r
283 /**\r
284   * @}\r
285   */    \r
286 \r
287 /** @defgroup LCD_BlinkFrequency \r
288   * @{\r
289   */\r
290 \r
291 #define LCD_BlinkFrequency_Div8         ((uint32_t)0x00000000) /*!< The Blink frequency = fLCD/8    */\r
292 #define LCD_BlinkFrequency_Div16        ((uint32_t)0x00002000) /*!< The Blink frequency = fLCD/16   */\r
293 #define LCD_BlinkFrequency_Div32        ((uint32_t)0x00004000) /*!< The Blink frequency = fLCD/32   */\r
294 #define LCD_BlinkFrequency_Div64        ((uint32_t)0x00006000) /*!< The Blink frequency = fLCD/64   */\r
295 #define LCD_BlinkFrequency_Div128       ((uint32_t)0x00008000) /*!< The Blink frequency = fLCD/128  */\r
296 #define LCD_BlinkFrequency_Div256       ((uint32_t)0x0000A000) /*!< The Blink frequency = fLCD/256  */\r
297 #define LCD_BlinkFrequency_Div512       ((uint32_t)0x0000C000) /*!< The Blink frequency = fLCD/512  */\r
298 #define LCD_BlinkFrequency_Div1024      ((uint32_t)0x0000E000) /*!< The Blink frequency = fLCD/1024 */\r
299 \r
300 #define IS_LCD_BLINK_FREQUENCY(FREQUENCY) (((FREQUENCY) == LCD_BlinkFrequency_Div8) || \\r
301                                            ((FREQUENCY) == LCD_BlinkFrequency_Div16) || \\r
302                                            ((FREQUENCY) == LCD_BlinkFrequency_Div32) || \\r
303                                            ((FREQUENCY) == LCD_BlinkFrequency_Div64) || \\r
304                                            ((FREQUENCY) == LCD_BlinkFrequency_Div128) || \\r
305                                            ((FREQUENCY) == LCD_BlinkFrequency_Div256) || \\r
306                                            ((FREQUENCY) == LCD_BlinkFrequency_Div512) || \\r
307                                            ((FREQUENCY) == LCD_BlinkFrequency_Div1024))\r
308 /**\r
309   * @}\r
310   */\r
311 \r
312 /** @defgroup LCD_Contrast \r
313   * @{\r
314   */\r
315 \r
316 #define LCD_Contrast_Level_0               ((uint32_t)0x00000000) /*!< Maximum Voltage = 2.60V    */\r
317 #define LCD_Contrast_Level_1               ((uint32_t)0x00000400) /*!< Maximum Voltage = 2.73V    */\r
318 #define LCD_Contrast_Level_2               ((uint32_t)0x00000800) /*!< Maximum Voltage = 2.86V    */\r
319 #define LCD_Contrast_Level_3               ((uint32_t)0x00000C00) /*!< Maximum Voltage = 2.99V    */\r
320 #define LCD_Contrast_Level_4               ((uint32_t)0x00001000) /*!< Maximum Voltage = 3.12V    */\r
321 #define LCD_Contrast_Level_5               ((uint32_t)0x00001400) /*!< Maximum Voltage = 3.25V    */\r
322 #define LCD_Contrast_Level_6               ((uint32_t)0x00001800) /*!< Maximum Voltage = 3.38V    */\r
323 #define LCD_Contrast_Level_7               ((uint32_t)0x00001C00) /*!< Maximum Voltage = 3.51V    */\r
324 \r
325 #define IS_LCD_CONTRAST(CONTRAST) (((CONTRAST) == LCD_Contrast_Level_0) || \\r
326                                    ((CONTRAST) == LCD_Contrast_Level_1) || \\r
327                                    ((CONTRAST) == LCD_Contrast_Level_2) || \\r
328                                    ((CONTRAST) == LCD_Contrast_Level_3) || \\r
329                                    ((CONTRAST) == LCD_Contrast_Level_4) || \\r
330                                    ((CONTRAST) == LCD_Contrast_Level_5) || \\r
331                                    ((CONTRAST) == LCD_Contrast_Level_6) || \\r
332                                    ((CONTRAST) == LCD_Contrast_Level_7))\r
333 /**\r
334   * @}\r
335   */\r
336       \r
337 /** @defgroup LCD_Flag \r
338   * @{\r
339   */\r
340 \r
341 #define LCD_FLAG_ENS                    LCD_SR_ENS\r
342 #define LCD_FLAG_SOF                    LCD_SR_SOF\r
343 #define LCD_FLAG_UDR                    LCD_SR_UDR\r
344 #define LCD_FLAG_UDD                    LCD_SR_UDD\r
345 #define LCD_FLAG_RDY                    LCD_SR_RDY\r
346 #define LCD_FLAG_FCRSF                  LCD_SR_FCRSR\r
347 \r
348 #define IS_LCD_GET_FLAG(FLAG) (((FLAG) == LCD_FLAG_ENS) || ((FLAG) == LCD_FLAG_SOF) || \\r
349                                ((FLAG) == LCD_FLAG_UDR) || ((FLAG) == LCD_FLAG_UDD) || \\r
350                                ((FLAG) == LCD_FLAG_RDY) || ((FLAG) == LCD_FLAG_FCRSF))\r
351 \r
352 #define IS_LCD_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0xFFFFFFF5) == 0x00) && ((FLAG) != 0x00))\r
353 /**\r
354   * @}\r
355   */   \r
356 \r
357 /** @defgroup LCD_RAMRegister \r
358   * @{\r
359   */\r
360 \r
361 #define LCD_RAMRegister_0               ((uint32_t)0x00000000) /*!< LCD RAM Register 0  */\r
362 #define LCD_RAMRegister_1               ((uint32_t)0x00000001) /*!< LCD RAM Register 1  */\r
363 #define LCD_RAMRegister_2               ((uint32_t)0x00000002) /*!< LCD RAM Register 2  */\r
364 #define LCD_RAMRegister_3               ((uint32_t)0x00000003) /*!< LCD RAM Register 3  */\r
365 #define LCD_RAMRegister_4               ((uint32_t)0x00000004) /*!< LCD RAM Register 4  */\r
366 #define LCD_RAMRegister_5               ((uint32_t)0x00000005) /*!< LCD RAM Register 5  */\r
367 #define LCD_RAMRegister_6               ((uint32_t)0x00000006) /*!< LCD RAM Register 6  */\r
368 #define LCD_RAMRegister_7               ((uint32_t)0x00000007) /*!< LCD RAM Register 7  */\r
369 #define LCD_RAMRegister_8               ((uint32_t)0x00000008) /*!< LCD RAM Register 8  */\r
370 #define LCD_RAMRegister_9               ((uint32_t)0x00000009) /*!< LCD RAM Register 9  */\r
371 #define LCD_RAMRegister_10              ((uint32_t)0x0000000A) /*!< LCD RAM Register 10 */\r
372 #define LCD_RAMRegister_11              ((uint32_t)0x0000000B) /*!< LCD RAM Register 11 */\r
373 #define LCD_RAMRegister_12              ((uint32_t)0x0000000C) /*!< LCD RAM Register 12 */\r
374 #define LCD_RAMRegister_13              ((uint32_t)0x0000000D) /*!< LCD RAM Register 13 */\r
375 #define LCD_RAMRegister_14              ((uint32_t)0x0000000E) /*!< LCD RAM Register 14 */\r
376 #define LCD_RAMRegister_15              ((uint32_t)0x0000000F) /*!< LCD RAM Register 15 */\r
377 \r
378 #define IS_LCD_RAM_REGISTER(REGISTER) (((REGISTER) == LCD_RAMRegister_0) || \\r
379                                        ((REGISTER) == LCD_RAMRegister_1) || \\r
380                                        ((REGISTER) == LCD_RAMRegister_2) || \\r
381                                        ((REGISTER) == LCD_RAMRegister_3) || \\r
382                                        ((REGISTER) == LCD_RAMRegister_4) || \\r
383                                        ((REGISTER) == LCD_RAMRegister_5) || \\r
384                                        ((REGISTER) == LCD_RAMRegister_6) || \\r
385                                        ((REGISTER) == LCD_RAMRegister_7) || \\r
386                                        ((REGISTER) == LCD_RAMRegister_8) || \\r
387                                        ((REGISTER) == LCD_RAMRegister_9) || \\r
388                                        ((REGISTER) == LCD_RAMRegister_10) || \\r
389                                        ((REGISTER) == LCD_RAMRegister_11) || \\r
390                                        ((REGISTER) == LCD_RAMRegister_12) || \\r
391                                        ((REGISTER) == LCD_RAMRegister_13) || \\r
392                                        ((REGISTER) == LCD_RAMRegister_14) || \\r
393                                        ((REGISTER) == LCD_RAMRegister_15))\r
394 \r
395 /**\r
396   * @}\r
397   */  \r
398    \r
399 /**\r
400   * @}\r
401   */\r
402 \r
403 /* Exported macro ------------------------------------------------------------*/\r
404 /* Exported functions ------------------------------------------------------- */\r
405 \r
406 /*  Function used to set the LCD configuration to the default reset state *****/\r
407 void LCD_DeInit(void);\r
408 \r
409 /* Initialization and Configuration functions *********************************/\r
410 void LCD_Init(LCD_InitTypeDef* LCD_InitStruct);\r
411 void LCD_StructInit(LCD_InitTypeDef* LCD_InitStruct);\r
412 void LCD_Cmd(FunctionalState NewState);\r
413 void LCD_WaitForSynchro(void);\r
414 void LCD_HighDriveCmd(FunctionalState NewState);\r
415 void LCD_MuxSegmentCmd(FunctionalState NewState);\r
416 void LCD_PulseOnDurationConfig(uint32_t LCD_PulseOnDuration);\r
417 void LCD_DeadTimeConfig(uint32_t LCD_DeadTime);\r
418 void LCD_BlinkConfig(uint32_t LCD_BlinkMode, uint32_t LCD_BlinkFrequency);\r
419 void LCD_ContrastConfig(uint32_t LCD_Contrast);\r
420 \r
421 /* LCD RAM memory write functions *********************************************/\r
422 void LCD_Write(uint32_t LCD_RAMRegister, uint32_t LCD_Data);\r
423 void LCD_UpdateDisplayRequest(void);\r
424 \r
425 /* Interrupts and flags management functions **********************************/\r
426 void LCD_ITConfig(uint32_t LCD_IT, FunctionalState NewState);\r
427 FlagStatus LCD_GetFlagStatus(uint32_t LCD_FLAG);\r
428 void LCD_ClearFlag(uint32_t LCD_FLAG);\r
429 ITStatus LCD_GetITStatus(uint32_t LCD_IT);\r
430 void LCD_ClearITPendingBit(uint32_t LCD_IT);\r
431 \r
432 #ifdef __cplusplus\r
433 }\r
434 #endif\r
435 \r
436 #endif /* __STM32L1xx_LCD_H */\r
437 \r
438 /**\r
439   * @}\r
440   */\r
441 \r
442 /**\r
443   * @}\r
444   */\r
445 \r
446 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/\r