Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
stm32_leds.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2022 Otto-von-Guericke-Universität Magdeburg
3
* SPDX-License-Identifier: LGPL-2.1-only
4
*/
5
6
#pragma once
7
22
/* Using gpio_ll_arch for GPIO access. On STM32, accessing the GPIO output
23
* buffer via GPIO LL even works when the GPIO LL feature/module is not in
24
* use */
25
#include "
periph/gpio_ll.h
"
26
#include "
kernel_defines.h
"
27
28
#ifdef __cplusplus
29
extern
"C"
{
30
#endif
31
36
#if defined(LED0_PORT_NUM) && defined (LED0_PIN_NUM)
37
# define LED0_PIN GPIO_PIN(LED0_PORT_NUM, LED0_PIN_NUM)
38
# define LED0_MASK (1 << LED0_PIN_NUM)
39
# if IS_ACTIVE(LED0_IS_INVERTED)
40
# define LED0_ON gpio_ll_clear(LED0_PORT, LED0_MASK)
41
# define LED0_OFF gpio_ll_set(LED0_PORT, LED0_MASK)
42
# else
43
# define LED0_ON gpio_ll_set(LED0_PORT, LED0_MASK)
44
# define LED0_OFF gpio_ll_clear(LED0_PORT, LED0_MASK)
45
# endif
46
# define LED0_TOGGLE gpio_ll_toggle(LED0_PORT, LED0_MASK)
47
#endif
48
49
#if defined(LED1_PORT_NUM) && defined (LED1_PIN_NUM)
50
# define LED1_PIN GPIO_PIN(LED1_PORT_NUM, LED1_PIN_NUM)
51
# define LED1_MASK (1 << LED1_PIN_NUM)
52
# if IS_ACTIVE(LED1_IS_INVERTED)
53
# define LED1_ON gpio_ll_clear(LED1_PORT, LED1_MASK)
54
# define LED1_OFF gpio_ll_set(LED1_PORT, LED1_MASK)
55
# else
56
# define LED1_ON gpio_ll_set(LED1_PORT, LED1_MASK)
57
# define LED1_OFF gpio_ll_clear(LED1_PORT, LED1_MASK)
58
# endif
59
# define LED1_TOGGLE gpio_ll_toggle(LED1_PORT, LED1_MASK)
60
#endif
61
62
#if defined(LED2_PORT_NUM) && defined (LED2_PIN_NUM)
63
# define LED2_PIN GPIO_PIN(LED2_PORT_NUM, LED2_PIN_NUM)
64
# define LED2_MASK (1 << LED2_PIN_NUM)
65
# if IS_ACTIVE(LED2_IS_INVERTED)
66
# define LED2_ON gpio_ll_clear(LED2_PORT, LED2_MASK)
67
# define LED2_OFF gpio_ll_set(LED2_PORT, LED2_MASK)
68
# else
69
# define LED2_ON gpio_ll_set(LED2_PORT, LED2_MASK)
70
# define LED2_OFF gpio_ll_clear(LED2_PORT, LED2_MASK)
71
# endif
72
# define LED2_TOGGLE gpio_ll_toggle(LED2_PORT, LED2_MASK)
73
#endif
74
75
#if defined(LED3_PORT_NUM) && defined (LED3_PIN_NUM)
76
# define LED3_PIN GPIO_PIN(LED3_PORT_NUM, LED3_PIN_NUM)
77
# define LED3_MASK (1 << LED3_PIN_NUM)
78
# if IS_ACTIVE(LED3_IS_INVERTED)
79
# define LED3_ON gpio_ll_clear(LED3_PORT, LED3_MASK)
80
# define LED3_OFF gpio_ll_set(LED3_PORT, LED3_MASK)
81
# else
82
# define LED3_ON gpio_ll_set(LED3_PORT, LED3_MASK)
83
# define LED3_OFF gpio_ll_clear(LED3_PORT, LED3_MASK)
84
# endif
85
# define LED3_TOGGLE gpio_ll_toggle(LED3_PORT, LED3_MASK)
86
#endif
87
88
#if defined(LED4_PORT_NUM) && defined (LED4_PIN_NUM)
89
# define LED4_PIN GPIO_PIN(LED4_PORT_NUM, LED4_PIN_NUM)
90
# define LED4_MASK (1 << LED4_PIN_NUM)
91
# if IS_ACTIVE(LED4_IS_INVERTED)
92
# define LED4_ON gpio_ll_clear(LED4_PORT, LED4_MASK)
93
# define LED4_OFF gpio_ll_set(LED4_PORT, LED4_MASK)
94
# else
95
# define LED4_ON gpio_ll_set(LED4_PORT, LED4_MASK)
96
# define LED4_OFF gpio_ll_clear(LED4_PORT, LED4_MASK)
97
# endif
98
# define LED4_TOGGLE gpio_ll_toggle(LED4_PORT, LED4_MASK)
99
#endif
100
101
#if defined(LED5_PORT_NUM) && defined (LED5_PIN_NUM)
102
# define LED5_PIN GPIO_PIN(LED5_PORT_NUM, LED5_PIN_NUM)
103
# define LED5_MASK (1 << LED5_PIN_NUM)
104
# if IS_ACTIVE(LED5_IS_INVERTED)
105
# define LED5_ON gpio_ll_clear(LED5_PORT, LED5_MASK)
106
# define LED5_OFF gpio_ll_set(LED5_PORT, LED5_MASK)
107
# else
108
# define LED5_ON gpio_ll_set(LED5_PORT, LED5_MASK)
109
# define LED5_OFF gpio_ll_clear(LED5_PORT, LED5_MASK)
110
# endif
111
# define LED5_TOGGLE gpio_ll_toggle(LED5_PORT, LED5_MASK)
112
#endif
113
114
#if defined(LED6_PORT_NUM) && defined (LED6_PIN_NUM)
115
# define LED6_PIN GPIO_PIN(LED6_PORT_NUM, LED6_PIN_NUM)
116
# define LED6_MASK (1 << LED6_PIN_NUM)
117
# if IS_ACTIVE(LED6_IS_INVERTED)
118
# define LED6_ON gpio_ll_clear(LED6_PORT, LED6_MASK)
119
# define LED6_OFF gpio_ll_set(LED6_PORT, LED6_MASK)
120
# else
121
# define LED6_ON gpio_ll_set(LED6_PORT, LED6_MASK)
122
# define LED6_OFF gpio_ll_clear(LED6_PORT, LED6_MASK)
123
# endif
124
# define LED6_TOGGLE gpio_ll_toggle(LED6_PORT, LED6_MASK)
125
#endif
126
127
#if defined(LED7_PORT_NUM) && defined (LED7_PIN_NUM)
128
# define LED7_PIN GPIO_PIN(LED7_PORT_NUM, LED7_PIN_NUM)
129
# define LED7_MASK (1 << LED7_PIN_NUM)
130
# if IS_ACTIVE(LED7_IS_INVERTED)
131
# define LED7_ON gpio_ll_clear(LED7_PORT, LED7_MASK)
132
# define LED7_OFF gpio_ll_set(LED7_PORT, LED7_MASK)
133
# else
134
# define LED7_ON gpio_ll_set(LED7_PORT, LED7_MASK)
135
# define LED7_OFF gpio_ll_clear(LED7_PORT, LED7_MASK)
136
# endif
137
# define LED7_TOGGLE gpio_ll_toggle(LED7_PORT, LED7_MASK)
138
#endif
139
142
#ifdef __cplusplus
143
}
144
#endif
145
gpio_ll.h
Peripheral GPIO Low-Level API.
kernel_defines.h
Common macros and compiler attributes/pragmas configuration.
Generated on Thu Jul 24 2025 16:03:56 by
1.9.1