Loading...
Searching...
No Matches
stm32_leds.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2022 Otto-von-Guericke-Universität Magdeburg
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
23#ifndef STM32_LEDS_H
24#define STM32_LEDS_H
25
26/* Using gpio_ll_arch for GPIO access. On STM32, accessing the GPIO output
27 * buffer via GPIO LL even works when the GPIO LL feature/module is not in
28 * use */
29#include "periph/gpio_ll.h"
30#include "kernel_defines.h"
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
40#if defined(LED0_PORT_NUM) && defined (LED0_PIN_NUM)
41# define LED0_PIN GPIO_PIN(LED0_PORT_NUM, LED0_PIN_NUM)
42# define LED0_MASK (1 << LED0_PIN_NUM)
43# if IS_ACTIVE(LED0_IS_INVERTED)
44# define LED0_ON gpio_ll_clear(LED0_PORT, LED0_MASK)
45# define LED0_OFF gpio_ll_set(LED0_PORT, LED0_MASK)
46# else
47# define LED0_ON gpio_ll_set(LED0_PORT, LED0_MASK)
48# define LED0_OFF gpio_ll_clear(LED0_PORT, LED0_MASK)
49# endif
50# define LED0_TOGGLE gpio_ll_toggle(LED0_PORT, LED0_MASK)
51#endif
52
53#if defined(LED1_PORT_NUM) && defined (LED1_PIN_NUM)
54# define LED1_PIN GPIO_PIN(LED1_PORT_NUM, LED1_PIN_NUM)
55# define LED1_MASK (1 << LED1_PIN_NUM)
56# if IS_ACTIVE(LED1_IS_INVERTED)
57# define LED1_ON gpio_ll_clear(LED1_PORT, LED1_MASK)
58# define LED1_OFF gpio_ll_set(LED1_PORT, LED1_MASK)
59# else
60# define LED1_ON gpio_ll_set(LED1_PORT, LED1_MASK)
61# define LED1_OFF gpio_ll_clear(LED1_PORT, LED1_MASK)
62# endif
63# define LED1_TOGGLE gpio_ll_toggle(LED1_PORT, LED1_MASK)
64#endif
65
66#if defined(LED2_PORT_NUM) && defined (LED2_PIN_NUM)
67# define LED2_PIN GPIO_PIN(LED2_PORT_NUM, LED2_PIN_NUM)
68# define LED2_MASK (1 << LED2_PIN_NUM)
69# if IS_ACTIVE(LED2_IS_INVERTED)
70# define LED2_ON gpio_ll_clear(LED2_PORT, LED2_MASK)
71# define LED2_OFF gpio_ll_set(LED2_PORT, LED2_MASK)
72# else
73# define LED2_ON gpio_ll_set(LED2_PORT, LED2_MASK)
74# define LED2_OFF gpio_ll_clear(LED2_PORT, LED2_MASK)
75# endif
76# define LED2_TOGGLE gpio_ll_toggle(LED2_PORT, LED2_MASK)
77#endif
78
79#if defined(LED3_PORT_NUM) && defined (LED3_PIN_NUM)
80# define LED3_PIN GPIO_PIN(LED3_PORT_NUM, LED3_PIN_NUM)
81# define LED3_MASK (1 << LED3_PIN_NUM)
82# if IS_ACTIVE(LED3_IS_INVERTED)
83# define LED3_ON gpio_ll_clear(LED3_PORT, LED3_MASK)
84# define LED3_OFF gpio_ll_set(LED3_PORT, LED3_MASK)
85# else
86# define LED3_ON gpio_ll_set(LED3_PORT, LED3_MASK)
87# define LED3_OFF gpio_ll_clear(LED3_PORT, LED3_MASK)
88# endif
89# define LED3_TOGGLE gpio_ll_toggle(LED3_PORT, LED3_MASK)
90#endif
91
92#if defined(LED4_PORT_NUM) && defined (LED4_PIN_NUM)
93# define LED4_PIN GPIO_PIN(LED4_PORT_NUM, LED4_PIN_NUM)
94# define LED4_MASK (1 << LED4_PIN_NUM)
95# if IS_ACTIVE(LED4_IS_INVERTED)
96# define LED4_ON gpio_ll_clear(LED4_PORT, LED4_MASK)
97# define LED4_OFF gpio_ll_set(LED4_PORT, LED4_MASK)
98# else
99# define LED4_ON gpio_ll_set(LED4_PORT, LED4_MASK)
100# define LED4_OFF gpio_ll_clear(LED4_PORT, LED4_MASK)
101# endif
102# define LED4_TOGGLE gpio_ll_toggle(LED4_PORT, LED4_MASK)
103#endif
104
105#if defined(LED5_PORT_NUM) && defined (LED5_PIN_NUM)
106# define LED5_PIN GPIO_PIN(LED5_PORT_NUM, LED5_PIN_NUM)
107# define LED5_MASK (1 << LED5_PIN_NUM)
108# if IS_ACTIVE(LED5_IS_INVERTED)
109# define LED5_ON gpio_ll_clear(LED5_PORT, LED5_MASK)
110# define LED5_OFF gpio_ll_set(LED5_PORT, LED5_MASK)
111# else
112# define LED5_ON gpio_ll_set(LED5_PORT, LED5_MASK)
113# define LED5_OFF gpio_ll_clear(LED5_PORT, LED5_MASK)
114# endif
115# define LED5_TOGGLE gpio_ll_toggle(LED5_PORT, LED5_MASK)
116#endif
117
118#if defined(LED6_PORT_NUM) && defined (LED6_PIN_NUM)
119# define LED6_PIN GPIO_PIN(LED6_PORT_NUM, LED6_PIN_NUM)
120# define LED6_MASK (1 << LED6_PIN_NUM)
121# if IS_ACTIVE(LED6_IS_INVERTED)
122# define LED6_ON gpio_ll_clear(LED6_PORT, LED6_MASK)
123# define LED6_OFF gpio_ll_set(LED6_PORT, LED6_MASK)
124# else
125# define LED6_ON gpio_ll_set(LED6_PORT, LED6_MASK)
126# define LED6_OFF gpio_ll_clear(LED6_PORT, LED6_MASK)
127# endif
128# define LED6_TOGGLE gpio_ll_toggle(LED6_PORT, LED6_MASK)
129#endif
130
131#if defined(LED7_PORT_NUM) && defined (LED7_PIN_NUM)
132# define LED7_PIN GPIO_PIN(LED7_PORT_NUM, LED7_PIN_NUM)
133# define LED7_MASK (1 << LED7_PIN_NUM)
134# if IS_ACTIVE(LED7_IS_INVERTED)
135# define LED7_ON gpio_ll_clear(LED7_PORT, LED7_MASK)
136# define LED7_OFF gpio_ll_set(LED7_PORT, LED7_MASK)
137# else
138# define LED7_ON gpio_ll_set(LED7_PORT, LED7_MASK)
139# define LED7_OFF gpio_ll_clear(LED7_PORT, LED7_MASK)
140# endif
141# define LED7_TOGGLE gpio_ll_toggle(LED7_PORT, LED7_MASK)
142#endif
143
146#ifdef __cplusplus
147}
148#endif
149
150#endif /* STM32_LEDS_H */
Peripheral GPIO Low-Level API.
Common macros and compiler attributes/pragmas configuration.