TM STM32F4xx Libraries  v1.0.0
Libraries for STM32F4xx devices from Tilen Majerle
tm_stm32f4_disco.h
1 
31 #ifndef TM_DISCO_H
32 #define TM_DISCO_H 1110
33 
153 #include "stm32f4xx.h"
154 #include "defines.h"
155 #include "tm_stm32f4_gpio.h"
156 
157 /* Recognize correct board */
158 /* CooCox support */
159 #if defined(STM32F429_439xx) || defined(STM32F429ZI)
160  /* STM32F429 Discovery support */
161  #ifndef TM_DISCO_STM32F429_DISCOVERY
162  #define TM_DISCO_STM32F429_DISCOVERY
163  #endif
164 #elif defined(STM32F407VG) || defined(STM32F401VC)// || defined(STM32F40_41xxx)
165  /* STM32F4 and STM32F401 Discovery support */
166  #ifndef TM_DISCO_STM32F4_DISCOVERY
167  #define TM_DISCO_STM32F4_DISCOVERY
168  #endif
169 #elif defined (STM32F401xx) || defined(STM32F401RE) || defined(STM32F401RB)
170  /* Nucleo F401RE board support */
171  #ifndef TM_DISCO_NUCLEO_F401
172  #define TM_DISCO_NUCLEO_F401
173  #endif
174 #elif defined (STM32F411xx) || defined(STM32F411RE) || defined(STM32F411RB)
175  /* Nucleo F411RE board support */
176  #ifndef TM_DISCO_NUCLEO_F411
177  #define TM_DISCO_NUCLEO_F411
178  #endif
179 #endif
180 
181 /* STM32F429 Discovery */
182 #if defined(TM_DISCO_STM324x9_EVAL)
183  #define LED_GREEN GPIO_PIN_6
184  #define LED_ORANGE GPIO_PIN_7
185  #define LED_RED GPIO_PIN_10
186  #define LED_BLUE GPIO_PIN_12
187  #define LED_ALL LED_GREEN | LED_RED | LED_ORANGE | LED_BLUE
188 
189  #define TM_DISCO_SWAP_LOGIC
190 
191  #define TM_DISCO_LED_PORT GPIOG
192  #define TM_DISCO_LED_PINS LED_GREEN | LED_RED | LED_ORANGE | LED_BLUE
193 
194  #define TM_DISCO_BUTTON_PORT GPIOA
195  #define TM_DISCO_BUTTON_PIN GPIO_PIN_0
196  #define TM_DISCO_BUTTON_PRESSED 1
197  #define TM_DISCO_BUTTON_PULL TM_GPIO_PuPd_DOWN
198 #elif defined(TM_DISCO_STM32F429_DISCOVERY)
199  #define LED_GREEN GPIO_PIN_13
200  #define LED_RED GPIO_PIN_14
201  #define LED_ORANGE 0
202  #define LED_BLUE 0
203  #define LED_ALL LED_GREEN | LED_RED
204 
205  #define TM_DISCO_LED_PORT GPIOG
206  #define TM_DISCO_LED_PINS LED_GREEN | LED_RED
207 
208  #define TM_DISCO_BUTTON_PORT GPIOA
209  #define TM_DISCO_BUTTON_PIN GPIO_PIN_0
210  #define TM_DISCO_BUTTON_PRESSED 1
211  #define TM_DISCO_BUTTON_PULL TM_GPIO_PuPd_DOWN
212 /* STM32F4 & STM32F401 Discovery */
213 #elif defined(TM_DISCO_STM32F4_DISCOVERY) || defined(TM_DISCO_STM32F401_DISCOVERY) || defined(TM_DISCO_STM32F411_DISCOVERY)
214  #define LED_GREEN GPIO_PIN_12
215  #define LED_ORANGE GPIO_PIN_13
216  #define LED_RED GPIO_PIN_14
217  #define LED_BLUE GPIO_PIN_15
218  #define LED_ALL LED_GREEN | LED_RED | LED_ORANGE | LED_BLUE
219 
220  #define TM_DISCO_LED_PORT GPIOD
221  #define TM_DISCO_LED_PINS LED_GREEN | LED_RED | LED_ORANGE | LED_BLUE
222 
223  #define TM_DISCO_BUTTON_PORT GPIOA
224  #define TM_DISCO_BUTTON_PIN GPIO_PIN_0
225  #define TM_DISCO_BUTTON_PRESSED 1
226  #define TM_DISCO_BUTTON_PULL TM_GPIO_PuPd_DOWN
227 /* Nucleo F401-RE & F411-RE */
228 #elif defined(TM_DISCO_NUCLEO_F401) || defined(TM_DISCO_NUCLEO_F411)
229  #define LED_GREEN GPIO_PIN_5
230  #define LED_RED 0
231  #define LED_ORANGE 0
232  #define LED_BLUE 0
233  #define LED_ALL LED_GREEN
234 
235  #define TM_DISCO_LED_PORT GPIOA
236  #define TM_DISCO_LED_PINS LED_GREEN
237 
238  #define TM_DISCO_BUTTON_PORT GPIOC
239  #define TM_DISCO_BUTTON_PIN GPIO_PIN_13
240  #define TM_DISCO_BUTTON_PRESSED 0
241  #define TM_DISCO_BUTTON_PULL TM_GPIO_PuPd_UP
242 /* STM324x9 EVAL board */
243 #else
244  #error "tm_stm32f4_disco.h: Please select your board. Open tm_stm32f4_disco.h and follow instructions!!"
245 #endif
246 
258 void TM_DISCO_LedInit(void);
259 
265 void TM_DISCO_ButtonInit(void);
266 
278 #ifndef TM_DISCO_SWAP_LOGIC
279  #define TM_DISCO_LedOn(led) TM_GPIO_SetPinHigh(TM_DISCO_LED_PORT, (led))
280 #else
281  #define TM_DISCO_LedOn(led) TM_GPIO_SetPinLow(TM_DISCO_LED_PORT, (led))
282 #endif
283 
295 #ifndef TM_DISCO_SWAP_LOGIC
296  #define TM_DISCO_LedOff(led) TM_GPIO_SetPinLow(TM_DISCO_LED_PORT, (led))
297 #else
298  #define TM_DISCO_LedOff(led) TM_GPIO_SetPinHigh(TM_DISCO_LED_PORT, (led))
299 #endif
300 
311 #define TM_DISCO_LedToggle(led) TM_GPIO_TogglePinValue(TM_DISCO_LED_PORT, (led))
312 
324 #ifndef TM_DISCO_SWAP_LOGIC
325 #define TM_DISCO_LedIsOn(led) TM_GPIO_GetOutputPinValue(TM_DISCO_LED_PORT, (led))
326 #else
327 #define TM_DISCO_LedIsOn(led) !TM_GPIO_GetOutputPinValue(TM_DISCO_LED_PORT, (led))
328 #endif
329 
343 #define TM_DISCO_SetLed(led, state) ((state) ? TM_DISCO_LedOn(led): TM_DISCO_LedOff(led))
344 
352 #define TM_DISCO_ButtonPressed() ((TM_GPIO_GetInputPinValue(TM_DISCO_BUTTON_PORT, TM_DISCO_BUTTON_PIN) == 0) != TM_DISCO_BUTTON_PRESSED)
353 
361 uint8_t TM_DISCO_ButtonOnPressed(void);
362 
370 uint8_t TM_DISCO_ButtonOnReleased(void);
371 
384 #endif
void TM_DISCO_ButtonInit(void)
Configures Button pin as input.
void TM_DISCO_LedInit(void)
Configures LED pins as outputs.
uint8_t TM_DISCO_ButtonOnReleased(void)
Checks if button was released now, but was already pressed before.
uint8_t TM_DISCO_ButtonOnPressed(void)
Checks if button was pressed now, but was not already pressed before.