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