]> git.sur5r.net Git - freertos/blob - Demo/_Cortex_STM32L152_IAR/system_and_ST_code/STM32L152_EVAL/stm32l152_eval_lcd.h
First phase of changing the directory that starts Cortex, with one that starts CORTEX.
[freertos] / Demo / _Cortex_STM32L152_IAR / system_and_ST_code / STM32L152_EVAL / stm32l152_eval_lcd.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32l152_eval_lcd.h\r
4   * @author  MCD Application Team\r
5   * @version V4.4.0RC1\r
6   * @date    07/02/2010\r
7   * @brief   This file contains all the functions prototypes for the stm32l152_eval_lcd\r
8   *          firmware driver.\r
9   ******************************************************************************\r
10   * @copy\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 /* Define to prevent recursive inclusion -------------------------------------*/\r
23 #ifndef __STM32L152_EVAL_LCD_H\r
24 #define __STM32L152_EVAL_LCD_H\r
25 \r
26 #ifdef __cplusplus\r
27  extern "C" {\r
28 #endif\r
29 \r
30 /* Includes ------------------------------------------------------------------*/\r
31 #include "stm32l1xx.h"\r
32 #include "../Common/fonts.h"\r
33 \r
34 /** @addtogroup Utilities\r
35   * @{\r
36   */\r
37 \r
38 /** @addtogroup STM32_EVAL\r
39   * @{\r
40   */\r
41 \r
42 /** @addtogroup STM32L152_EVAL\r
43   * @{\r
44   */\r
45 \r
46 /** @addtogroup STM32L152_EVAL_LCD\r
47   * @{\r
48   */\r
49 \r
50 \r
51 /** @defgroup STM32L152_EVAL_LCD_Exported_Types\r
52   * @{\r
53   */\r
54 typedef struct\r
55 {\r
56   int16_t X;\r
57   int16_t Y;\r
58 } Point, * pPoint;\r
59 /**\r
60   * @}\r
61   */\r
62 \r
63 /** @defgroup STM32L152_EVAL_LCD_Exported_Constants\r
64   * @{\r
65   */\r
66 \r
67 /**\r
68  * @brief Uncomment the line below if you want to use LCD_DrawBMP function to\r
69  *        display a bitmap picture on the LCD. This function assumes that the bitmap\r
70  *        file is loaded in the SPI Flash (mounted on STM32L152-EVAL board), however\r
71  *        user can tailor it according to his application hardware requirement.\r
72  */\r
73 /*#define USE_LCD_DrawBMP*/\r
74 \r
75 /**\r
76  * @brief Uncomment the line below if you want to use user defined Delay function\r
77  *        (for precise timing), otherwise default _delay_ function defined within\r
78  *         this driver is used (less precise timing).\r
79  */\r
80 /* #define USE_Delay */\r
81 \r
82 #ifdef USE_Delay\r
83 #include "main.h"\r
84 \r
85   #define _delay_     Delay  /* !< User can provide more timing precise _delay_ function\r
86                                    (with 10ms time base), using SysTick for example */\r
87 #else\r
88   #define _delay_     delay      /* !< Default _delay_ function with less precise timing */\r
89 #endif\r
90 \r
91 \r
92 /**\r
93   * @brief  LCD Control pins\r
94   */\r
95 #define LCD_NCS_PIN             GPIO_Pin_2\r
96 #define LCD_NCS_GPIO_PORT       GPIOH\r
97 #define LCD_NCS_GPIO_CLK        RCC_AHBPeriph_GPIOH\r
98 \r
99 /**\r
100   * @brief  LCD SPI Interface pins\r
101   */\r
102 #define LCD_SPI_SCK_PIN               GPIO_Pin_13                    /* PE.13 */\r
103 #define LCD_SPI_SCK_GPIO_PORT         GPIOE                          /* GPIOE */\r
104 #define LCD_SPI_SCK_GPIO_CLK          RCC_AHBPeriph_GPIOE\r
105 #define LCD_SPI_SCK_SOURCE            GPIO_PinSource13\r
106 #define LCD_SPI_SCK_AF                GPIO_AF_SPI1\r
107 #define LCD_SPI_MISO_PIN              GPIO_Pin_14                    /* PE.14 */\r
108 #define LCD_SPI_MISO_GPIO_PORT        GPIOE                          /* GPIOE */\r
109 #define LCD_SPI_MISO_GPIO_CLK         RCC_AHBPeriph_GPIOE\r
110 #define LCD_SPI_MISO_SOURCE           GPIO_PinSource14\r
111 #define LCD_SPI_MISO_AF               GPIO_AF_SPI1\r
112 #define LCD_SPI_MOSI_PIN              GPIO_Pin_15                    /* PE.15 */\r
113 #define LCD_SPI_MOSI_GPIO_PORT        GPIOE                          /* GPIOE */\r
114 #define LCD_SPI_MOSI_GPIO_CLK         RCC_AHBPeriph_GPIOE\r
115 #define LCD_SPI_MOSI_SOURCE           GPIO_PinSource15\r
116 #define LCD_SPI_MOSI_AF               GPIO_AF_SPI1\r
117 #define LCD_SPI                       SPI1\r
118 #define LCD_SPI_CLK                   RCC_APB2Periph_SPI1\r
119 \r
120 \r
121 /**\r
122   * @brief  LCD Registers\r
123   */\r
124 #define LCD_REG_0             0x00\r
125 #define LCD_REG_1             0x01\r
126 #define LCD_REG_2             0x02\r
127 #define LCD_REG_3             0x03\r
128 #define LCD_REG_4             0x04\r
129 #define LCD_REG_5             0x05\r
130 #define LCD_REG_6             0x06\r
131 #define LCD_REG_7             0x07\r
132 #define LCD_REG_8             0x08\r
133 #define LCD_REG_9             0x09\r
134 #define LCD_REG_10            0x0A\r
135 #define LCD_REG_12            0x0C\r
136 #define LCD_REG_13            0x0D\r
137 #define LCD_REG_14            0x0E\r
138 #define LCD_REG_15            0x0F\r
139 #define LCD_REG_16            0x10\r
140 #define LCD_REG_17            0x11\r
141 #define LCD_REG_18            0x12\r
142 #define LCD_REG_19            0x13\r
143 #define LCD_REG_20            0x14\r
144 #define LCD_REG_21            0x15\r
145 #define LCD_REG_22            0x16\r
146 #define LCD_REG_23            0x17\r
147 #define LCD_REG_24            0x18\r
148 #define LCD_REG_25            0x19\r
149 #define LCD_REG_26            0x1A\r
150 #define LCD_REG_27            0x1B\r
151 #define LCD_REG_28            0x1C\r
152 #define LCD_REG_29            0x1D\r
153 #define LCD_REG_30            0x1E\r
154 #define LCD_REG_31            0x1F\r
155 #define LCD_REG_32            0x20\r
156 #define LCD_REG_33            0x21\r
157 #define LCD_REG_34            0x22\r
158 #define LCD_REG_36            0x24\r
159 #define LCD_REG_37            0x25\r
160 #define LCD_REG_40            0x28\r
161 #define LCD_REG_41            0x29\r
162 #define LCD_REG_43            0x2B\r
163 #define LCD_REG_45            0x2D\r
164 #define LCD_REG_48            0x30\r
165 #define LCD_REG_49            0x31\r
166 #define LCD_REG_50            0x32\r
167 #define LCD_REG_51            0x33\r
168 #define LCD_REG_52            0x34\r
169 #define LCD_REG_53            0x35\r
170 #define LCD_REG_54            0x36\r
171 #define LCD_REG_55            0x37\r
172 #define LCD_REG_56            0x38\r
173 #define LCD_REG_57            0x39\r
174 #define LCD_REG_59            0x3B\r
175 #define LCD_REG_60            0x3C\r
176 #define LCD_REG_61            0x3D\r
177 #define LCD_REG_62            0x3E\r
178 #define LCD_REG_63            0x3F\r
179 #define LCD_REG_64            0x40\r
180 #define LCD_REG_65            0x41\r
181 #define LCD_REG_66            0x42\r
182 #define LCD_REG_67            0x43\r
183 #define LCD_REG_68            0x44\r
184 #define LCD_REG_69            0x45\r
185 #define LCD_REG_70            0x46\r
186 #define LCD_REG_71            0x47\r
187 #define LCD_REG_72            0x48\r
188 #define LCD_REG_73            0x49\r
189 #define LCD_REG_74            0x4A\r
190 #define LCD_REG_75            0x4B\r
191 #define LCD_REG_76            0x4C\r
192 #define LCD_REG_77            0x4D\r
193 #define LCD_REG_78            0x4E\r
194 #define LCD_REG_79            0x4F\r
195 #define LCD_REG_80            0x50\r
196 #define LCD_REG_81            0x51\r
197 #define LCD_REG_82            0x52\r
198 #define LCD_REG_83            0x53\r
199 #define LCD_REG_96            0x60\r
200 #define LCD_REG_97            0x61\r
201 #define LCD_REG_106           0x6A\r
202 #define LCD_REG_118           0x76\r
203 #define LCD_REG_128           0x80\r
204 #define LCD_REG_129           0x81\r
205 #define LCD_REG_130           0x82\r
206 #define LCD_REG_131           0x83\r
207 #define LCD_REG_132           0x84\r
208 #define LCD_REG_133           0x85\r
209 #define LCD_REG_134           0x86\r
210 #define LCD_REG_135           0x87\r
211 #define LCD_REG_136           0x88\r
212 #define LCD_REG_137           0x89\r
213 #define LCD_REG_139           0x8B\r
214 #define LCD_REG_140           0x8C\r
215 #define LCD_REG_141           0x8D\r
216 #define LCD_REG_143           0x8F\r
217 #define LCD_REG_144           0x90\r
218 #define LCD_REG_145           0x91\r
219 #define LCD_REG_146           0x92\r
220 #define LCD_REG_147           0x93\r
221 #define LCD_REG_148           0x94\r
222 #define LCD_REG_149           0x95\r
223 #define LCD_REG_150           0x96\r
224 #define LCD_REG_151           0x97\r
225 #define LCD_REG_152           0x98\r
226 #define LCD_REG_153           0x99\r
227 #define LCD_REG_154           0x9A\r
228 #define LCD_REG_157           0x9D\r
229 #define LCD_REG_192           0xC0\r
230 #define LCD_REG_193           0xC1\r
231 #define LCD_REG_227           0xE3\r
232 #define LCD_REG_229           0xE5\r
233 #define LCD_REG_231           0xE7\r
234 #define LCD_REG_239           0xEF\r
235 \r
236 \r
237 /**\r
238   * @brief  LCD color\r
239   */\r
240 #define LCD_COLOR_WHITE          0xFFFF\r
241 #define LCD_COLOR_BLACK          0x0000\r
242 #define LCD_COLOR_GREY           0xF7DE\r
243 #define LCD_COLOR_BLUE           0x001F\r
244 #define LCD_COLOR_BLUE2          0x051F\r
245 #define LCD_COLOR_RED            0xF800\r
246 #define LCD_COLOR_MAGENTA        0xF81F\r
247 #define LCD_COLOR_GREEN          0x07E0\r
248 #define LCD_COLOR_CYAN           0x7FFF\r
249 #define LCD_COLOR_YELLOW         0xFFE0\r
250 \r
251 /**\r
252   * @brief  LCD Lines depending on the chosen fonts.\r
253   */\r
254 #define LCD_LINE_0               LINE(0)\r
255 #define LCD_LINE_1               LINE(1)\r
256 #define LCD_LINE_2               LINE(2)\r
257 #define LCD_LINE_3               LINE(3)\r
258 #define LCD_LINE_4               LINE(4)\r
259 #define LCD_LINE_5               LINE(5)\r
260 #define LCD_LINE_6               LINE(6)\r
261 #define LCD_LINE_7               LINE(7)\r
262 #define LCD_LINE_8               LINE(8)\r
263 #define LCD_LINE_9               LINE(9)\r
264 #define LCD_LINE_10              LINE(10)\r
265 #define LCD_LINE_11              LINE(11)\r
266 #define LCD_LINE_12              LINE(12)\r
267 #define LCD_LINE_13              LINE(13)\r
268 #define LCD_LINE_14              LINE(14)\r
269 #define LCD_LINE_15              LINE(15)\r
270 #define LCD_LINE_16              LINE(16)\r
271 #define LCD_LINE_17              LINE(17)\r
272 #define LCD_LINE_18              LINE(18)\r
273 #define LCD_LINE_19              LINE(19)\r
274 #define LCD_LINE_20              LINE(20)\r
275 #define LCD_LINE_21              LINE(21)\r
276 #define LCD_LINE_22              LINE(22)\r
277 #define LCD_LINE_23              LINE(23)\r
278 #define LCD_LINE_24              LINE(24)\r
279 #define LCD_LINE_25              LINE(25)\r
280 #define LCD_LINE_26              LINE(26)\r
281 #define LCD_LINE_27              LINE(27)\r
282 #define LCD_LINE_28              LINE(28)\r
283 #define LCD_LINE_29              LINE(29)\r
284 \r
285 \r
286 /**\r
287   * @brief LCD default font\r
288   */\r
289 #define LCD_DEFAULT_FONT         Font16x24\r
290 \r
291 /**\r
292   * @brief  LCD Direction\r
293   */\r
294 #define LCD_DIR_HORIZONTAL       0x0000\r
295 #define LCD_DIR_VERTICAL         0x0001\r
296 \r
297 /**\r
298   * @brief  LCD Size (Width and Height)\r
299   */\r
300 #define LCD_PIXEL_WIDTH          0x0140\r
301 #define LCD_PIXEL_HEIGHT         0x00F0\r
302 \r
303 /**\r
304   * @}\r
305   */\r
306 \r
307 /** @defgroup STM32L152_EVAL_LCD_Exported_Macros\r
308   * @{\r
309   */\r
310 #define ASSEMBLE_RGB(R, G, B)    ((((R)& 0xF8) << 8) | (((G) & 0xFC) << 3) | (((B) & 0xF8) >> 3))\r
311 \r
312 /**\r
313   * @}\r
314   */\r
315 \r
316 /** @defgroup STM32L152_EVAL_LCD_Exported_Functions\r
317   * @{\r
318   */\r
319 void STM32L152_LCD_DeInit(void);\r
320 void LCD_Setup(void);\r
321 void STM32L152_LCD_Init(void);\r
322 void LCD_SetColors(__IO uint16_t _TextColor, __IO uint16_t _BackColor);\r
323 void LCD_GetColors(__IO uint16_t *_TextColor, __IO uint16_t *_BackColor);\r
324 void LCD_SetTextColor(__IO uint16_t Color);\r
325 void LCD_SetBackColor(__IO uint16_t Color);\r
326 void LCD_ClearLine(uint8_t Line);\r
327 void LCD_Clear(uint16_t Color);\r
328 void LCD_SetCursor(uint8_t Xpos, uint16_t Ypos);\r
329 void LCD_DrawChar(uint8_t Xpos, uint16_t Ypos, const uint16_t *c);\r
330 void LCD_DisplayChar(uint8_t Line, uint16_t Column, uint8_t Ascii);\r
331 void LCD_SetFont(sFONT *fonts);\r
332 sFONT *LCD_GetFont(void);\r
333 void LCD_DisplayStringLine(uint8_t Line, uint8_t *ptr);\r
334 void LCD_SetDisplayWindow(uint8_t Xpos, uint16_t Ypos, uint8_t Height, uint16_t Width);\r
335 void LCD_WindowModeDisable(void);\r
336 void LCD_DrawLine(uint8_t Xpos, uint16_t Ypos, uint16_t Length, uint8_t Direction);\r
337 void LCD_DrawRect(uint8_t Xpos, uint16_t Ypos, uint8_t Height, uint16_t Width);\r
338 void LCD_DrawCircle(uint8_t Xpos, uint16_t Ypos, uint16_t Radius);\r
339 void LCD_DrawMonoPict(const uint32_t *Pict);\r
340 void LCD_DrawBMP(uint32_t BmpAddress);\r
341 void LCD_DrawUniLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);\r
342 void LCD_DrawFullRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);\r
343 void LCD_DrawFullCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);\r
344 void LCD_PolyLine(pPoint Points, uint16_t PointCount);\r
345 void LCD_PolyLineRelative(pPoint Points, uint16_t PointCount);\r
346 void LCD_ClosedPolyLine(pPoint Points, uint16_t PointCount);\r
347 void LCD_ClosedPolyLineRelative(pPoint Points, uint16_t PointCount);\r
348 void LCD_FillPolyLine(pPoint Points, uint16_t PointCount);\r
349 void LCD_nCS_StartByte(uint8_t Start_Byte);\r
350 void LCD_WriteRegIndex(uint8_t LCD_Reg);\r
351 void LCD_WriteReg(uint8_t LCD_Reg, uint16_t LCD_RegValue);\r
352 void LCD_WriteRAM_Prepare(void);\r
353 void LCD_WriteRAMWord(uint16_t RGB_Code);\r
354 uint16_t LCD_ReadReg(uint8_t LCD_Reg);\r
355 void LCD_WriteRAM(uint16_t RGB_Code);\r
356 void LCD_PowerOn(void);\r
357 void LCD_DisplayOn(void);\r
358 void LCD_DisplayOff(void);\r
359 \r
360 void LCD_CtrlLinesConfig(void);\r
361 void LCD_CtrlLinesWrite(GPIO_TypeDef* GPIOx, uint16_t CtrlPins, BitAction BitVal);\r
362 void LCD_SPIConfig(void);\r
363 \r
364 /**\r
365   * @}\r
366   */\r
367 \r
368 #ifdef __cplusplus\r
369 }\r
370 #endif\r
371 \r
372 #endif /* __STM32L152_EVAL_LCD_H */\r
373 \r
374 \r
375 /**\r
376   * @}\r
377   */\r
378 \r
379 /**\r
380   * @}\r
381   */\r
382 \r
383 /**\r
384   * @}\r
385   */\r
386 \r
387 /**\r
388   * @}\r
389   */\r
390 \r
391 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/\r