]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_MPU_M3_NUCLEO_L152RE_GCC/ST_Code/Drivers/STM32L1xx_HAL_Driver/Inc/stm32l1xx_hal_gpio_ex.h
Add MPU demo project for Nulceo-L152RE which is Coretx-M3.
[freertos] / FreeRTOS / Demo / CORTEX_MPU_M3_NUCLEO_L152RE_GCC / ST_Code / Drivers / STM32L1xx_HAL_Driver / Inc / stm32l1xx_hal_gpio_ex.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32l1xx_hal_gpio_ex.h\r
4   * @author  MCD Application Team\r
5   * @brief   Header file of GPIO HAL Extension module.\r
6   ******************************************************************************\r
7   * @attention\r
8   *\r
9   * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.\r
10   * All rights reserved.</center></h2>\r
11   *\r
12   * This software component is licensed by ST under BSD 3-Clause license,\r
13   * the "License"; You may not use this file except in compliance with the\r
14   * License. You may obtain a copy of the License at:\r
15   *                        opensource.org/licenses/BSD-3-Clause\r
16   *\r
17   ******************************************************************************\r
18   */ \r
19 \r
20 /* Define to prevent recursive inclusion -------------------------------------*/\r
21 #ifndef __STM32L1xx_HAL_GPIO_EX_H\r
22 #define __STM32L1xx_HAL_GPIO_EX_H\r
23 \r
24 #ifdef __cplusplus\r
25  extern "C" {\r
26 #endif\r
27 \r
28 /* Includes ------------------------------------------------------------------*/\r
29 #include "stm32l1xx_hal_def.h"\r
30 \r
31 /** @addtogroup STM32L1xx_HAL_Driver\r
32   * @{\r
33   */\r
34 \r
35 /** @defgroup GPIOEx GPIOEx\r
36   * @{\r
37   */ \r
38 \r
39 /* Exported types ------------------------------------------------------------*/\r
40 /* Exported constants --------------------------------------------------------*/\r
41 /** @defgroup GPIOEx_Exported_Constants GPIOEx Exported Constants\r
42   * @{\r
43   */ \r
44   \r
45 /** @defgroup GPIOEx_Alternate_function_selection GPIOEx Alternate function selection\r
46   * @{\r
47   */\r
48   \r
49 /* AF 0 selection */ \r
50 #define GPIO_AF0_MCO           ((uint8_t)0x00)  /*!< MCO Alternate Function mapping                 */\r
51 #define GPIO_AF0_TAMPER        ((uint8_t)0x00)  /*!< TAMPER  Alternate Function mapping             */\r
52 #define GPIO_AF0_SWJ           ((uint8_t)0x00)  /*!< SWJ (SWD and JTAG) Alternate Function mapping  */\r
53 #define GPIO_AF0_TRACE         ((uint8_t)0x00)  /*!< TRACE Alternate Function mapping               */\r
54 #define GPIO_AF0_RTC_50Hz      ((uint8_t)0x00)  /*!< RTC_OUT Alternate Function mapping             */\r
55    \r
56 /* AF 1 selection */ \r
57 #define GPIO_AF1_TIM2           ((uint8_t)0x01)  /*!< TIM2 Alternate Function mapping */\r
58 \r
59 /* AF 2 selection */ \r
60 #define GPIO_AF2_TIM3           ((uint8_t)0x02)  /*!< TIM3 Alternate Function mapping */\r
61 #define GPIO_AF2_TIM4           ((uint8_t)0x02)  /*!< TIM4 Alternate Function mapping */\r
62 #if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) || defined (STM32L162xC) || defined (STM32L152xC) || defined (STM32L151xC)\r
63 #define GPIO_AF2_TIM5           ((uint8_t)0x02)  /*!< TIM5 Alternate Function mapping */\r
64 \r
65 #endif /*  STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD ...STM32L151xC */ \r
66 \r
67 /* AF 3 selection */ \r
68 #define GPIO_AF3_TIM9            ((uint8_t)0x03)  /*!< TIM9 Alternate Function mapping */\r
69 #define GPIO_AF3_TIM10           ((uint8_t)0x03)  /*!< TIM10 Alternate Function mapping */\r
70 #define GPIO_AF3_TIM11           ((uint8_t)0x03)  /*!< TIM11 Alternate Function mapping */\r
71 \r
72 \r
73 /* AF 4 selection */ \r
74 #define GPIO_AF4_I2C1          ((uint8_t)0x04)  /*!< I2C1 Alternate Function mapping */\r
75 #define GPIO_AF4_I2C2          ((uint8_t)0x04)  /*!< I2C2 Alternate Function mapping */\r
76 \r
77 /* AF 5 selection */ \r
78 #define GPIO_AF5_SPI1          ((uint8_t)0x05)  /*!< SPI1/I2S1 Alternate Function mapping      */\r
79 #define GPIO_AF5_SPI2          ((uint8_t)0x05)  /*!< SPI2/I2S2 Alternate Function mapping */\r
80 \r
81 /* AF 6 selection */ \r
82 #if defined (STM32L100xC) || defined (STM32L151xC) || defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\\r
83     defined (STM32L152xC) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\\r
84     defined (STM32L162xC) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)\r
85     \r
86 #define GPIO_AF6_SPI3          ((uint8_t)0x06)  /*!< SPI3/I2S3 Alternate Function mapping */\r
87 \r
88 #endif /* STM32L100xC || STM32L151xC || (...) || STM32L162xD || STM32L162xE || STM32L162xDX */\r
89 \r
90 \r
91 /* AF 7 selection */ \r
92 #define GPIO_AF7_USART1        ((uint8_t)0x07)  /*!< USART1 Alternate Function mapping  */\r
93 #define GPIO_AF7_USART2        ((uint8_t)0x07)  /*!< USART2 Alternate Function mapping  */\r
94 #define GPIO_AF7_USART3        ((uint8_t)0x07)  /*!< USART3 Alternate Function mapping  */\r
95 \r
96 /* AF 8 selection */ \r
97 #if defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\\r
98     defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\\r
99     defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)\r
100    \r
101 #define GPIO_AF8_UART4        ((uint8_t)0x08)  /*!< UART4 Alternate Function mapping  */\r
102 #define GPIO_AF8_UART5        ((uint8_t)0x08)  /*!< UART5 Alternate Function mapping  */\r
103 \r
104 #endif /* STM32L151xD || STM32L151xE || STM32L151xDX || STM32L152xD || STM32L 152xE || STM32L162xD || STM32L162xE || STM32L162xDX */\r
105 \r
106 \r
107 /* AF 9 selection */ \r
108 \r
109 /* AF 10 selection */ \r
110 \r
111 /* AF 11 selection */ \r
112 #if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\\r
113     defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\\r
114     defined (STM32L162xC) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)\r
115 \r
116 #define GPIO_AF11_LCD            ((uint8_t)0x0B)  /*!< LCD Alternate Function mapping */\r
117 \r
118 #endif /* STM32L100xB || STM32L100xBA || STM32L100xC || (...) || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */\r
119 \r
120 /* AF 12 selection */ \r
121 #if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)\r
122     \r
123 #define GPIO_AF12_FSMC            ((uint8_t)0x0C)  /*!< FSMC Alternate Function mapping */\r
124 #define GPIO_AF12_SDIO            ((uint8_t)0x0C)  /*!< SDIO Alternate Function mapping */\r
125 \r
126 #endif /* STM32L151xD || STM32L152xD || STM32L162xD */\r
127 /* AF 13 selection */ \r
128 \r
129 /* AF 14 selection */ \r
130 #define GPIO_AF14_TIM_IC1         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */\r
131 #define GPIO_AF14_TIM_IC2         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */\r
132 #define GPIO_AF14_TIM_IC3         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */\r
133 #define GPIO_AF14_TIM_IC4         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */\r
134 \r
135 /* AF 15 selection */ \r
136 #define GPIO_AF15_EVENTOUT      ((uint8_t)0x0F)  /*!< EVENTOUT Alternate Function mapping */\r
137 \r
138 /**\r
139   * @}\r
140   */ \r
141 \r
142 /**\r
143   * @}\r
144   */\r
145 \r
146 /** @defgroup GPIOEx_Private_Macros GPIOEx Private Macros\r
147   * @{\r
148   */\r
149 \r
150 \r
151 #define IS_GPIO_AF(AF)   ((AF) <= (uint8_t)0x0F)\r
152 \r
153 \r
154 #if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX)\r
155 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\\r
156                                    ((__GPIOx__) == (GPIOB))? 1U :\\r
157                                    ((__GPIOx__) == (GPIOC))? 2U :\\r
158                                    ((__GPIOx__) == (GPIOD))? 3U :\\r
159                                    ((__GPIOx__) == (GPIOE))? 4U :\\r
160                                    ((__GPIOx__) == (GPIOH))? 5U :\\r
161                                    ((__GPIOx__) == (GPIOF))? 6U : 7U)\r
162 #endif \r
163 \r
164 #if defined (STM32L151xB) || defined (STM32L151xBA) || defined (STM32L151xC) || defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L162xC)\r
165 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\\r
166                                    ((__GPIOx__) == (GPIOB))? 1U :\\r
167                                    ((__GPIOx__) == (GPIOC))? 2U :\\r
168                                    ((__GPIOx__) == (GPIOD))? 3U :\\r
169                                    ((__GPIOx__) == (GPIOE))? 4U : 5U)\r
170 #endif \r
171 \r
172 #if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC)\r
173 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\\r
174                                    ((__GPIOx__) == (GPIOB))? 1U :\\r
175                                    ((__GPIOx__) == (GPIOC))? 2U :\\r
176                                    ((__GPIOx__) == (GPIOD))? 3U : 5U)\r
177 #endif \r
178 \r
179 \r
180 \r
181 /**\r
182   * @}\r
183   */\r
184 \r
185 \r
186 \r
187 /* Exported macro ------------------------------------------------------------*/\r
188 /* Exported functions --------------------------------------------------------*/ \r
189 \r
190 \r
191 /**\r
192   * @}\r
193   */ \r
194 \r
195 /**\r
196   * @}\r
197   */ \r
198   \r
199 #ifdef __cplusplus\r
200 }\r
201 #endif\r
202 \r
203 #endif /* __STM32L1xx_HAL_GPIO_EX_H */\r
204 \r
205 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r