TM STM32F4xx Libraries  v1.0.0
Libraries for STM32F4xx devices from Tilen Majerle
tm_stm32f4_pcd8544.h
1 
67 #ifndef PCD8544_H
68 #define PCD8544_H 100
69 
79 #include "defines.h"
80 #include "stm32f4xx.h"
81 #include "stm32f4xx_gpio.h"
82 #include "stm32f4xx_rcc.h"
83 #include "tm_stm32f4_spi.h"
84 
85 //SPI used
86 #ifndef PCD8544_SPI
87 #define PCD8544_SPI SPI2
88 #define PCD8544_SPI_PINSPACK TM_SPI_PinsPack_1
89 #endif
90 
91 //Default pins used
92 //Default RST pin
93 #ifndef PCD8544_RST_PIN
94 #define PCD8544_RST_RCC RCC_AHB1Periph_GPIOC
95 #define PCD8544_RST_PORT GPIOC
96 #define PCD8544_RST_PIN GPIO_Pin_15
97 #endif
98 //Default DC pin
99 #ifndef PCD8544_DC_PIN
100 #define PCD8544_DC_RCC RCC_AHB1Periph_GPIOC
101 #define PCD8544_DC_PORT GPIOC
102 #define PCD8544_DC_PIN GPIO_Pin_14
103 #endif
104 //Default CE pin
105 #ifndef PCD8544_CE_PIN
106 #define PCD8544_CE_RCC RCC_AHB1Periph_GPIOC
107 #define PCD8544_CE_PORT GPIOC
108 #define PCD8544_CE_PIN GPIO_Pin_13
109 #endif
110 
111 #define PCD8544_CE_LOW GPIO_ResetBits(PCD8544_CE_PORT, PCD8544_CE_PIN)
112 #define PCD8544_CE_HIGH GPIO_SetBits(PCD8544_CE_PORT, PCD8544_CE_PIN)
113 
117 typedef enum {
118  PCD8544_COMMAND = 0,
119  PCD8544_DATA = !PCD8544_COMMAND
120 } PCD8544_WriteType_t;
121 
122 typedef enum {
123  PCD8544_State_Low = 0,
124  PCD8544_State_High = !PCD8544_State_Low
125 } PCD8544_State_t;
126 
127 typedef enum {
128  PCD8544_Pin_DC = 1,
129  PCD8544_Pin_RST = 2
130 } PCD8544_Pin_t;
131 
139 typedef enum {
140  PCD8544_Pixel_Clear = 0,
141  PCD8544_Pixel_Set = !PCD8544_Pixel_Clear
142 } PCD8544_Pixel_t;
143 
148 typedef enum {
149  PCD8544_FontSize_5x7 = 0,
150  PCD8544_FontSize_3x5 = !PCD8544_FontSize_5x7
151 } PCD8544_FontSize_t;
152 
156 typedef enum {
157  PCD8544_Invert_Yes,
158  PCD8544_Invert_No
159 } PCD8544_Invert_t;
160 
161 
162 #define PCD8544_WIDTH 84
163 #define PCD8544_HEIGHT 48
164 
165 // PCD8544 Commandset
166 // ------------------
167 // General commands
168 #define PCD8544_POWERDOWN 0x04
169 #define PCD8544_ENTRYMODE 0x02
170 #define PCD8544_EXTENDEDINSTRUCTION 0x01
171 #define PCD8544_DISPLAYBLANK 0x00
172 #define PCD8544_DISPLAYNORMAL 0x04
173 #define PCD8544_DISPLAYALLON 0x01
174 #define PCD8544_DISPLAYINVERTED 0x05
175 // Normal instruction set
176 #define PCD8544_FUNCTIONSET 0x20
177 #define PCD8544_DISPLAYCONTROL 0x08
178 #define PCD8544_SETYADDR 0x40
179 #define PCD8544_SETXADDR 0x80
180 // Extended instruction set
181 #define PCD8544_SETTEMP 0x04
182 #define PCD8544_SETBIAS 0x10
183 #define PCD8544_SETVOP 0x80
184 // Display presets
185 #define PCD8544_LCD_BIAS 0x03 // Range: 0-7 (0x00-0x07)
186 #define PCD8544_LCD_TEMP 0x02 // Range: 0-3 (0x00-0x03)
187 #define PCD8544_LCD_CONTRAST 0x46 // Range: 0-127 (0x00-0x7F)
188 
189 #define PCD8544_CHAR5x7_WIDTH 6 //5*8
190 #define PCD8544_CHAR5x7_HEIGHT 8
191 #define PCD8544_CHAR3x5_WIDTH 4 //3*5
192 #define PCD8544_CHAR3x5_HEIGHT 6
193 
194 #define PCD8544_BUFFER_SIZE PCD8544_WIDTH * PCD8544_HEIGHT / 8
195 
196 
201 extern void PCD8544_InitIO(void);
202 
207 extern void PCD8544_send(unsigned char data);
208 
213 extern void PCD8544_Pin(PCD8544_Pin_t pin, PCD8544_State_t state);
214 
219 extern void PCD8544_Delay(unsigned long micros);
220 
225 extern void PCD8544_Write(PCD8544_WriteType_t cd, unsigned char data);
226 
231 extern void PCD8544_UpdateArea(unsigned char xMin, unsigned char yMin, unsigned char xMax, unsigned char yMax);
232 
239 extern void PCD8544_Init(unsigned char contrast);
240 
247 extern void PCD8544_SetContrast(unsigned char contrast);
248 
257 extern void PCD8544_Invert(PCD8544_Invert_t invert);
258 
262 extern void PCD8544_Clear(void);
263 
274 extern void PCD8544_DrawPixel(unsigned char x, unsigned char y, PCD8544_Pixel_t pixel);
275 
280 extern void PCD8544_Home(void);
281 
286 extern void PCD8544_Refresh(void);
287 
295 extern void PCD8544_GotoXY(unsigned char x, unsigned char y);
296 
309 extern void PCD8544_Putc(char c, PCD8544_Pixel_t color, PCD8544_FontSize_t size);
310 
323 extern void PCD8544_Puts(char *c, PCD8544_Pixel_t color, PCD8544_FontSize_t size);
324 
337 extern void PCD8544_DrawLine(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, PCD8544_Pixel_t color);
338 
351 extern void PCD8544_DrawRectangle(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, PCD8544_Pixel_t color);
352 
365 extern void PCD8544_DrawFilledRectangle(unsigned char x0, unsigned char y0, unsigned char x1, unsigned char y1, PCD8544_Pixel_t color);
366 
378 extern void PCD8544_DrawCircle(char x0, char y0, char r, PCD8544_Pixel_t color);
379 
391 extern void PCD8544_DrawFilledCircle(char x0, char y0, char r, PCD8544_Pixel_t color);
392 
393 #endif