mbed official / mbed

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

Committer:
AnnaBridge
Date:
Wed Nov 08 17:18:06 2017 +0000
Revision:
156:ff21514d8981
Child:
167:84c0a372a020
Reverting back to release 154 of the mbed library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 156:ff21514d8981 1 /**
AnnaBridge 156:ff21514d8981 2 ******************************************************************************
AnnaBridge 156:ff21514d8981 3 * @file stm32l0xx_hal_gpio_ex.h
AnnaBridge 156:ff21514d8981 4 * @author MCD Application Team
AnnaBridge 156:ff21514d8981 5 * @version V1.7.0
AnnaBridge 156:ff21514d8981 6 * @date 31-May-2016
AnnaBridge 156:ff21514d8981 7 * @brief Header file of GPIO HAL Extension module.
AnnaBridge 156:ff21514d8981 8 ******************************************************************************
AnnaBridge 156:ff21514d8981 9 * @attention
AnnaBridge 156:ff21514d8981 10 *
AnnaBridge 156:ff21514d8981 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
AnnaBridge 156:ff21514d8981 12 *
AnnaBridge 156:ff21514d8981 13 * Redistribution and use in source and binary forms, with or without modification,
AnnaBridge 156:ff21514d8981 14 * are permitted provided that the following conditions are met:
AnnaBridge 156:ff21514d8981 15 * 1. Redistributions of source code must retain the above copyright notice,
AnnaBridge 156:ff21514d8981 16 * this list of conditions and the following disclaimer.
AnnaBridge 156:ff21514d8981 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
AnnaBridge 156:ff21514d8981 18 * this list of conditions and the following disclaimer in the documentation
AnnaBridge 156:ff21514d8981 19 * and/or other materials provided with the distribution.
AnnaBridge 156:ff21514d8981 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
AnnaBridge 156:ff21514d8981 21 * may be used to endorse or promote products derived from this software
AnnaBridge 156:ff21514d8981 22 * without specific prior written permission.
AnnaBridge 156:ff21514d8981 23 *
AnnaBridge 156:ff21514d8981 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AnnaBridge 156:ff21514d8981 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
AnnaBridge 156:ff21514d8981 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
AnnaBridge 156:ff21514d8981 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
AnnaBridge 156:ff21514d8981 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
AnnaBridge 156:ff21514d8981 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
AnnaBridge 156:ff21514d8981 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
AnnaBridge 156:ff21514d8981 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
AnnaBridge 156:ff21514d8981 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
AnnaBridge 156:ff21514d8981 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AnnaBridge 156:ff21514d8981 34 *
AnnaBridge 156:ff21514d8981 35 ******************************************************************************
AnnaBridge 156:ff21514d8981 36 */
AnnaBridge 156:ff21514d8981 37
AnnaBridge 156:ff21514d8981 38 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 156:ff21514d8981 39 #ifndef __STM32L0xx_HAL_GPIO_EX_H
AnnaBridge 156:ff21514d8981 40 #define __STM32L0xx_HAL_GPIO_EX_H
AnnaBridge 156:ff21514d8981 41
AnnaBridge 156:ff21514d8981 42 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 43 extern "C" {
AnnaBridge 156:ff21514d8981 44 #endif
AnnaBridge 156:ff21514d8981 45
AnnaBridge 156:ff21514d8981 46 /* Includes ------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 47 #include "stm32l0xx_hal_def.h"
AnnaBridge 156:ff21514d8981 48
AnnaBridge 156:ff21514d8981 49 /** @addtogroup STM32L0xx_HAL_Driver
AnnaBridge 156:ff21514d8981 50 * @{
AnnaBridge 156:ff21514d8981 51 */
AnnaBridge 156:ff21514d8981 52
AnnaBridge 156:ff21514d8981 53 /** @defgroup GPIOEx GPIOEx
AnnaBridge 156:ff21514d8981 54 * @{
AnnaBridge 156:ff21514d8981 55 */
AnnaBridge 156:ff21514d8981 56
AnnaBridge 156:ff21514d8981 57 /* Exported types ------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 58
AnnaBridge 156:ff21514d8981 59 /* Exported constants --------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 60
AnnaBridge 156:ff21514d8981 61 /** @defgroup GPIOEx_Exported_Constants GPIOEx Exported Constants
AnnaBridge 156:ff21514d8981 62 * @{
AnnaBridge 156:ff21514d8981 63 */
AnnaBridge 156:ff21514d8981 64
AnnaBridge 156:ff21514d8981 65
AnnaBridge 156:ff21514d8981 66 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 67 /*------------------------- STM32L083xx/STM32L073xx---------------------------*/
AnnaBridge 156:ff21514d8981 68 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 69
AnnaBridge 156:ff21514d8981 70 #if defined (STM32L083xx) || defined (STM32L073xx)
AnnaBridge 156:ff21514d8981 71
AnnaBridge 156:ff21514d8981 72 /* The table below gives an overview of the different alternate functions per port.
AnnaBridge 156:ff21514d8981 73 * For more details refer yourself to the product data sheet.
AnnaBridge 156:ff21514d8981 74 *
AnnaBridge 156:ff21514d8981 75 */
AnnaBridge 156:ff21514d8981 76
AnnaBridge 156:ff21514d8981 77 /* | AF0 | AF1 | AF2 | AF3 | AF4 | AF5 | AF6 | AF7 |
AnnaBridge 156:ff21514d8981 78 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 79 * PA0 | | |TIM2_C1 |TSC |USART2 |TIM2_TR |USART4 |COMP1 |
AnnaBridge 156:ff21514d8981 80 * PA1 |EVENTOUT|LCD |TIM2_C2 |TSC |USART2 |TIM21_TR|USART4 | |
AnnaBridge 156:ff21514d8981 81 * PA2 |TIM21_C1|LCD |TIM2_C3 |TSC |USART2 | |LPUART1 |COMP2 |
AnnaBridge 156:ff21514d8981 82 * PA3 |TIM21_C2|LCD |TIM2_C4 |TSC |USART2 | |LPUART1 | |
AnnaBridge 156:ff21514d8981 83 * PA4 |SPI1 | | |TSC |USART2 |TIM22_TR| | |
AnnaBridge 156:ff21514d8981 84 * PA5 |SPI1 | |TIM2_TR |TSC | |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 85 * PA6 |SPI1 |LCD |TIM3_C1 |TSC |LPUART1 |TIM22_C1|EVENTOUT|COMP1 |
AnnaBridge 156:ff21514d8981 86 * PA7 |SPI1 |LCD |TIM3_C2 |TSC | |TIM22_C2|EVENTOUT|COMP2 |
AnnaBridge 156:ff21514d8981 87 * PA8 |MCO |LCD |USB |EVENTOUT|USART1 | | |I2C3 |
AnnaBridge 156:ff21514d8981 88 * PA9 |MCO |LCD | |TSC |USART1 | |I2C1 |I2C3 |
AnnaBridge 156:ff21514d8981 89 * PA10| |LCD | |TSC |USART1 | |I2C1 | |
AnnaBridge 156:ff21514d8981 90 * PA11|SPI1 | |EVENTOUT|TSC |USART1 | |I2C2 |COMP1 |
AnnaBridge 156:ff21514d8981 91 * PA12|SPI1 | |EVENTOUT|TSC |USART1 | |I2C2 |COMP2 |
AnnaBridge 156:ff21514d8981 92 * PA13|SWDIO | |USB | | | |LPUART1 | |
AnnaBridge 156:ff21514d8981 93 * PA14|SWCLK | | | |USART2 | |LPUART1 | |
AnnaBridge 156:ff21514d8981 94 * PA15|SPI1 |LCD |TIM2_TR |EVENTOUT|USART2 |TIM2_C1 |USART4 | |
AnnaBridge 156:ff21514d8981 95 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 96 * PB0 |EVENTOUT|LCD |TIM3_C3 |TSC | | | | |
AnnaBridge 156:ff21514d8981 97 * PB1 | |LCD |TIM3_C4 |TSC |LPUART1 | | | |
AnnaBridge 156:ff21514d8981 98 * PB2 | | |LPTIM1_O|TSC | | | |I2C3 |
AnnaBridge 156:ff21514d8981 99 * PB3 |SPI1 |LCD |TIM2_C2 |TSC |EVENTOUT|USART1 |USART5 | |
AnnaBridge 156:ff21514d8981 100 * PB4 |SPI1 |LCD |TIM3_C1 |TSC |TIM22_C1|USART1 |USART5 |I2C3 |
AnnaBridge 156:ff21514d8981 101 * PB5 |SPI1 |LCD |LPTIM1_I|I2C1 |TIM3_C2 |USART1 |USART5 | |
AnnaBridge 156:ff21514d8981 102 * | | | | |TIM22_C2| | | |
AnnaBridge 156:ff21514d8981 103 * PB6 |USART1 |I2C1 |LPTIM1_T|TSC | | | | |
AnnaBridge 156:ff21514d8981 104 * PB7 |USART1 |I2C1 |LPTIM1_I|TSC | | |USART4 | |
AnnaBridge 156:ff21514d8981 105 * PB8 | |LCD | |TSC |I2C1 | | | |
AnnaBridge 156:ff21514d8981 106 * PB9 | |LCD |EVENTOUT| |I2C1 |SPI2 | | |
AnnaBridge 156:ff21514d8981 107 * PB10| |LCD |TIM2_C3 |TSC |LPUART1 |SPI2 |I2C2 |LPUART1 |
AnnaBridge 156:ff21514d8981 108 * PB11|EVENTOUT|LCD |TIM2_C4 |TSC |LPUART1 | |I2C2 |LPUART1 |
AnnaBridge 156:ff21514d8981 109 * PB12|SPI2 |LCD |LPUART1 |TSC | |I2C2 |EVENTOUT| |
AnnaBridge 156:ff21514d8981 110 * PB13|SPI2 |LCD |MCO |TSC |LPUART1 |I2C2 |TIM21_C1| |
AnnaBridge 156:ff21514d8981 111 * PB14|SPI2 |LCD |RTC |TSC |LPUART1 |I2C2 |TIM21_C2| |
AnnaBridge 156:ff21514d8981 112 * PB15|SPI2 |LCD |RTC | | | | | |
AnnaBridge 156:ff21514d8981 113 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 114 * PC0 |LPTIM1_I|LCD |EVENTOUT|TSC | | |LPUART1 |I2C3 |
AnnaBridge 156:ff21514d8981 115 * PC1 |LPTIM1_O|LCD |EVENTOUT|TSC | | |LPUART1 |I2C3 |
AnnaBridge 156:ff21514d8981 116 * PC2 |LPTIM1_I|LCD |SPI2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 117 * PC3 |LPTIM1_T|LCD |SPI2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 118 * PC4 |EVENTOUT|LCD |LPUART1 | | | | | |
AnnaBridge 156:ff21514d8981 119 * PC5 | |LCD |LPUART1 |TSC | | | | |
AnnaBridge 156:ff21514d8981 120 * PC6 |TIM22_C1|LCD |TIM3_C1 |TSC | | | | |
AnnaBridge 156:ff21514d8981 121 * PC7 |TIM22_C2|LCD |TIM3_C2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 122 * PC8 |TIM22_TR|LCD |TIM3_C3 |TSC | | | | |
AnnaBridge 156:ff21514d8981 123 * PC9 |TIM21_TR|LCD |USB |TSC | | | |I2C3 |
AnnaBridge 156:ff21514d8981 124 * | | |TIM3_C4 | | | | | |
AnnaBridge 156:ff21514d8981 125 * PC10|LPUART1 |LCD | | | | |USART4 | |
AnnaBridge 156:ff21514d8981 126 * PC11|LPUART1 |LCD | | | | |USART4 | |
AnnaBridge 156:ff21514d8981 127 * PC12| |LCD |USART5 | | | |USART4 | |
AnnaBridge 156:ff21514d8981 128 * PC13| | | | | | | | |
AnnaBridge 156:ff21514d8981 129 * PC14| | | | | | | | |
AnnaBridge 156:ff21514d8981 130 * PC15| | | | | | | | |
AnnaBridge 156:ff21514d8981 131 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 132 * PD0 |TIM21_C1|SPI2 | | | | | | |
AnnaBridge 156:ff21514d8981 133 * PD1 | |SPI2 | | | | | | |
AnnaBridge 156:ff21514d8981 134 * PD2 |LPUART1 |LCD |TIM3_TR | | | |USART5 | |
AnnaBridge 156:ff21514d8981 135 * PD3 |USART2 |LCD |SPI2 | | | | | |
AnnaBridge 156:ff21514d8981 136 * PD4 |USART2 |SPI2 | | | | | | |
AnnaBridge 156:ff21514d8981 137 * PD5 |USART2 | | | | | | | |
AnnaBridge 156:ff21514d8981 138 * PD6 |USART2 | | | | | | | |
AnnaBridge 156:ff21514d8981 139 * PD7 |USART2 |TIM21_C2| | | | | | |
AnnaBridge 156:ff21514d8981 140 * PD8 |LPUART1 |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 141 * PD9 |LPUART1 |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 142 * PD10| |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 143 * PD11|LPUART1 |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 144 * PD12|LPUART1 |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 145 * PD13| |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 146 * PD14| |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 147 * PD15|USB |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 148 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 149 * PE0 | |LCD |EVENTOUT| | | | | |
AnnaBridge 156:ff21514d8981 150 * PE1 | |LCD |EVENTOUT| | | | | |
AnnaBridge 156:ff21514d8981 151 * PE2 | |LCD |TIM3_TR | | | | | |
AnnaBridge 156:ff21514d8981 152 * PE3 |TIM22_C1|LCD |TIM3_C1 | | | | | |
AnnaBridge 156:ff21514d8981 153 * PE4 |TIM22_C2| |TIM3_C2 | | | | | |
AnnaBridge 156:ff21514d8981 154 * PE5 |TIM21_C1| |TIM3_C3 | | | | | |
AnnaBridge 156:ff21514d8981 155 * PE6 |TIM21_C2| |TIM3_C4 | | | | | |
AnnaBridge 156:ff21514d8981 156 * PE7 | |LCD | | | | |USART5 | |
AnnaBridge 156:ff21514d8981 157 * PE8 | |LCD | | | | |USART4 | |
AnnaBridge 156:ff21514d8981 158 * PE9 |TIM2_C1 |LCD |TIM2_TR | | | |USART4 | |
AnnaBridge 156:ff21514d8981 159 * PE10|TIM2_C2 |LCD | | | | |USART5 | |
AnnaBridge 156:ff21514d8981 160 * PE11|TIM2_C3 | | | | | |USART5 | |
AnnaBridge 156:ff21514d8981 161 * PE12|TIM2_C4 | |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 162 * PE13| |LCD |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 163 * PE14| |LCD |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 164 * PE15| |LCD |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 165 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 166 * PH0 |USB | | | | | | | |
AnnaBridge 156:ff21514d8981 167 * PH1 | | | | | | | | |
AnnaBridge 156:ff21514d8981 168 * PH9 | | | | | | | | |
AnnaBridge 156:ff21514d8981 169 * PH10| | | | | | | | |
AnnaBridge 156:ff21514d8981 170 *
AnnaBridge 156:ff21514d8981 171 */
AnnaBridge 156:ff21514d8981 172
AnnaBridge 156:ff21514d8981 173 /** @defgroup GPIOEx_Alternate_function_selection Alternate function selection
AnnaBridge 156:ff21514d8981 174 * @{
AnnaBridge 156:ff21514d8981 175 */
AnnaBridge 156:ff21514d8981 176
AnnaBridge 156:ff21514d8981 177 /*
AnnaBridge 156:ff21514d8981 178 * Alternate function AF0
AnnaBridge 156:ff21514d8981 179 */
AnnaBridge 156:ff21514d8981 180 #define GPIO_AF0_EVENTOUT ((uint8_t)0x00U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 181 #define GPIO_AF0_TIM21 ((uint8_t)0x00U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 182 #define GPIO_AF0_SPI1 ((uint8_t)0x00U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 183 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 184 #define GPIO_AF0_SWDIO ((uint8_t)0x00U) /* SWDIO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 185 #define GPIO_AF0_SWCLK ((uint8_t)0x00U) /* SWCLK Alternate Function mapping */
AnnaBridge 156:ff21514d8981 186 #define GPIO_AF0_USART1 ((uint8_t)0x00U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 187 #define GPIO_AF0_SPI2 ((uint8_t)0x00U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 188 #define GPIO_AF0_LPTIM1 ((uint8_t)0x00U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 189 #define GPIO_AF0_TIM22 ((uint8_t)0x00U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 190 #define GPIO_AF0_LPUART1 ((uint8_t)0x00U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 191 #define GPIO_AF0_USART2 ((uint8_t)0x00U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 192 #define GPIO_AF0_TIM2 ((uint8_t)0x00U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 193 #define GPIO_AF0_USB ((uint8_t)0x00U) /* USB Alternate Function mapping */
AnnaBridge 156:ff21514d8981 194 /**
AnnaBridge 156:ff21514d8981 195 *
AnnaBridge 156:ff21514d8981 196 */
AnnaBridge 156:ff21514d8981 197
AnnaBridge 156:ff21514d8981 198 /*
AnnaBridge 156:ff21514d8981 199 * Alternate function AF1
AnnaBridge 156:ff21514d8981 200 */
AnnaBridge 156:ff21514d8981 201 #define GPIO_AF1_I2C1 ((uint8_t)0x01U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 202 #define GPIO_AF1_SPI2 ((uint8_t)0x01U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 203 #define GPIO_AF1_TIM21 ((uint8_t)0x01U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 204 #define GPIO_AF1_LCD ((uint8_t)0x01U) /* LCD Alternate Function mapping */
AnnaBridge 156:ff21514d8981 205 /**
AnnaBridge 156:ff21514d8981 206 *
AnnaBridge 156:ff21514d8981 207 */
AnnaBridge 156:ff21514d8981 208
AnnaBridge 156:ff21514d8981 209 /*
AnnaBridge 156:ff21514d8981 210 * Alternate function AF2
AnnaBridge 156:ff21514d8981 211 */
AnnaBridge 156:ff21514d8981 212 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 213 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 214 #define GPIO_AF2_EVENTOUT ((uint8_t)0x02U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 215 #define GPIO_AF2_LPTIM1 ((uint8_t)0x02U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 216 #define GPIO_AF2_LPUART1 ((uint8_t)0x02U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 217 #define GPIO_AF2_MCO ((uint8_t)0x02U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 218 #define GPIO_AF2_RTC ((uint8_t)0x02U) /* RTC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 219 #define GPIO_AF2_SPI2 ((uint8_t)0x02U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 220 #define GPIO_AF2_USART5 ((uint8_t)0x02U) /* USART5 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 221 #define GPIO_AF2_SPI1 ((uint8_t)0x02U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 222 #define GPIO_AF2_USB ((uint8_t)0x00U) /* USB Alternate Function mapping */
AnnaBridge 156:ff21514d8981 223 /**
AnnaBridge 156:ff21514d8981 224 *
AnnaBridge 156:ff21514d8981 225 */
AnnaBridge 156:ff21514d8981 226
AnnaBridge 156:ff21514d8981 227 /*
AnnaBridge 156:ff21514d8981 228 * Alternate function AF3
AnnaBridge 156:ff21514d8981 229 */
AnnaBridge 156:ff21514d8981 230 #define GPIO_AF3_EVENTOUT ((uint8_t)0x03U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 231 #define GPIO_AF3_I2C1 ((uint8_t)0x03U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 232 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 233 /**
AnnaBridge 156:ff21514d8981 234 *
AnnaBridge 156:ff21514d8981 235 */
AnnaBridge 156:ff21514d8981 236
AnnaBridge 156:ff21514d8981 237 /*
AnnaBridge 156:ff21514d8981 238 * Alternate function AF4
AnnaBridge 156:ff21514d8981 239 */
AnnaBridge 156:ff21514d8981 240 #define GPIO_AF4_USART2 ((uint8_t)0x04U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 241 #define GPIO_AF4_LPUART1 ((uint8_t)0x04U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 242 #define GPIO_AF4_USART1 ((uint8_t)0x04U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 243 #define GPIO_AF4_EVENTOUT ((uint8_t)0x04U) /* EVENTOUT Alternate Function mapping*/
AnnaBridge 156:ff21514d8981 244 #define GPIO_AF4_TIM22 ((uint8_t)0x04U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 245 #define GPIO_AF4_TIM3 ((uint8_t)0x04U) /* TIM3 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 246 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 247 /**
AnnaBridge 156:ff21514d8981 248 *
AnnaBridge 156:ff21514d8981 249 */
AnnaBridge 156:ff21514d8981 250
AnnaBridge 156:ff21514d8981 251 /*
AnnaBridge 156:ff21514d8981 252 * Alternate function AF5
AnnaBridge 156:ff21514d8981 253 */
AnnaBridge 156:ff21514d8981 254 #define GPIO_AF5_TIM2 ((uint8_t)0x05U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 255 #define GPIO_AF5_TIM21 ((uint8_t)0x05U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 256 #define GPIO_AF5_TIM22 ((uint8_t)0x05U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 257 #define GPIO_AF5_USART1 ((uint8_t)0x05U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 258 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 259 #define GPIO_AF5_I2C2 ((uint8_t)0x05U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 260 /**
AnnaBridge 156:ff21514d8981 261 *
AnnaBridge 156:ff21514d8981 262 */
AnnaBridge 156:ff21514d8981 263
AnnaBridge 156:ff21514d8981 264 /*
AnnaBridge 156:ff21514d8981 265 * Alternate function AF6
AnnaBridge 156:ff21514d8981 266 */
AnnaBridge 156:ff21514d8981 267
AnnaBridge 156:ff21514d8981 268 #define GPIO_AF6_USART4 ((uint8_t)0x06U) /* USART4 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 269 #define GPIO_AF6_LPUART1 ((uint8_t)0x06U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 270 #define GPIO_AF6_EVENTOUT ((uint8_t)0x06U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 271 #define GPIO_AF6_I2C1 ((uint8_t)0x06U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 272 #define GPIO_AF6_I2C2 ((uint8_t)0x06U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 273 #define GPIO_AF6_USART5 ((uint8_t)0x06U) /* USART5 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 274 #define GPIO_AF6_TIM21 ((uint8_t)0x06U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 275 /**
AnnaBridge 156:ff21514d8981 276 *
AnnaBridge 156:ff21514d8981 277 */
AnnaBridge 156:ff21514d8981 278
AnnaBridge 156:ff21514d8981 279 /*
AnnaBridge 156:ff21514d8981 280 * Alternate function AF7
AnnaBridge 156:ff21514d8981 281 */
AnnaBridge 156:ff21514d8981 282 #define GPIO_AF7_COMP1 ((uint8_t)0x07U) /* COMP1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 283 #define GPIO_AF7_COMP2 ((uint8_t)0x07U) /* COMP2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 284 #define GPIO_AF7_I2C3 ((uint8_t)0x07U) /* I2C3 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 285 #define GPIO_AF7_LPUART1 ((uint8_t)0x07U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 286 /**
AnnaBridge 156:ff21514d8981 287 *
AnnaBridge 156:ff21514d8981 288 */
AnnaBridge 156:ff21514d8981 289
AnnaBridge 156:ff21514d8981 290 /**
AnnaBridge 156:ff21514d8981 291 * @}
AnnaBridge 156:ff21514d8981 292 */
AnnaBridge 156:ff21514d8981 293
AnnaBridge 156:ff21514d8981 294 /**
AnnaBridge 156:ff21514d8981 295 * @}
AnnaBridge 156:ff21514d8981 296 */
AnnaBridge 156:ff21514d8981 297
AnnaBridge 156:ff21514d8981 298 /** @defgroup GPIOEx_Private GPIOEx Private
AnnaBridge 156:ff21514d8981 299 * @{
AnnaBridge 156:ff21514d8981 300 */
AnnaBridge 156:ff21514d8981 301 /**
AnnaBridge 156:ff21514d8981 302 * IS_GPIO_AF macro definition
AnnaBridge 156:ff21514d8981 303 */
AnnaBridge 156:ff21514d8981 304 #define IS_GPIO_AF(__AF__) (((__AF__) == GPIO_AF0_EVENTOUT) || ((__AF__) == GPIO_AF1_LCD) || \
AnnaBridge 156:ff21514d8981 305 ((__AF__) == GPIO_AF0_SPI1) || ((__AF__) == GPIO_AF1_I2C1) || \
AnnaBridge 156:ff21514d8981 306 ((__AF__) == GPIO_AF0_TIM21) || ((__AF__) == GPIO_AF1_SPI2) || \
AnnaBridge 156:ff21514d8981 307 ((__AF__) == GPIO_AF0_MCO) || ((__AF__) == GPIO_AF1_TIM21) || \
AnnaBridge 156:ff21514d8981 308 ((__AF__) == GPIO_AF0_SWDIO) || ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 309 ((__AF__) == GPIO_AF0_SWCLK) || ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 310 ((__AF__) == GPIO_AF0_USART1) || ((__AF__) == GPIO_AF2_USB) || \
AnnaBridge 156:ff21514d8981 311 ((__AF__) == GPIO_AF0_SPI2) || ((__AF__) == GPIO_AF2_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 312 ((__AF__) == GPIO_AF0_LPTIM1) || ((__AF__) == GPIO_AF2_LPTIM1) || \
AnnaBridge 156:ff21514d8981 313 ((__AF__) == GPIO_AF0_TIM2) || ((__AF__) == GPIO_AF2_LPUART1) || \
AnnaBridge 156:ff21514d8981 314 ((__AF__) == GPIO_AF0_LPUART1) || ((__AF__) == GPIO_AF2_MCO) || \
AnnaBridge 156:ff21514d8981 315 ((__AF__) == GPIO_AF0_USART2) || ((__AF__) == GPIO_AF2_RTC) || \
AnnaBridge 156:ff21514d8981 316 ((__AF__) == GPIO_AF0_USB) || ((__AF__) == GPIO_AF2_SPI2) || \
AnnaBridge 156:ff21514d8981 317 ((__AF__) == GPIO_AF0_TIM2) || ((__AF__) == GPIO_AF2_USART5) || \
AnnaBridge 156:ff21514d8981 318 ((__AF__) == GPIO_AF3_TSC) || ((__AF__) == GPIO_AF2_SPI1) || \
AnnaBridge 156:ff21514d8981 319 ((__AF__) == GPIO_AF3_EVENTOUT) || ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 320 ((__AF__) == GPIO_AF3_I2C1) || ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 321 ((__AF__) == GPIO_AF5_TIM21) || ((__AF__) == GPIO_AF4_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 322 ((__AF__) == GPIO_AF5_TIM2) || ((__AF__) == GPIO_AF4_USART1) || \
AnnaBridge 156:ff21514d8981 323 ((__AF__) == GPIO_AF5_USART1) || ((__AF__) == GPIO_AF4_TIM22) || \
AnnaBridge 156:ff21514d8981 324 ((__AF__) == GPIO_AF5_TIM22) || ((__AF__) == GPIO_AF4_TIM3) || \
AnnaBridge 156:ff21514d8981 325 ((__AF__) == GPIO_AF5_SPI2) || ((__AF__) == GPIO_AF4_I2C1) || \
AnnaBridge 156:ff21514d8981 326 ((__AF__) == GPIO_AF5_I2C2) || ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 327 ((__AF__) == GPIO_AF7_COMP2) || ((__AF__) == GPIO_AF6_LPUART1) || \
AnnaBridge 156:ff21514d8981 328 ((__AF__) == GPIO_AF7_COMP1) || ((__AF__) == GPIO_AF6_I2C1) || \
AnnaBridge 156:ff21514d8981 329 ((__AF__) == GPIO_AF7_I2C3) || ((__AF__) == GPIO_AF6_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 330 ((__AF__) == GPIO_AF7_LPUART1) || ((__AF__) == GPIO_AF6_I2C2) || \
AnnaBridge 156:ff21514d8981 331 ((__AF__) == GPIO_AF6_USART5) || ((__AF__) == GPIO_AF6_TIM21))
AnnaBridge 156:ff21514d8981 332
AnnaBridge 156:ff21514d8981 333
AnnaBridge 156:ff21514d8981 334 #define IS_GPIO_AF_AVAILABLE(__INSTANCE__,__AF__) \
AnnaBridge 156:ff21514d8981 335 ((((__INSTANCE__) == GPIOA) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 336 ((__AF__) == GPIO_AF1_LCD) || \
AnnaBridge 156:ff21514d8981 337 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 338 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 339 ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 340 ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 341 ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 342 ((__AF__) == GPIO_AF7_I2C3))) || \
AnnaBridge 156:ff21514d8981 343 (((__INSTANCE__) == GPIOB) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 344 ((__AF__) == GPIO_AF1_LCD) || \
AnnaBridge 156:ff21514d8981 345 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 346 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 347 ((__AF__) == GPIO_AF4_TIM3) || \
AnnaBridge 156:ff21514d8981 348 ((__AF__) == GPIO_AF5_I2C2) || \
AnnaBridge 156:ff21514d8981 349 ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 350 ((__AF__) == GPIO_AF7_LPUART1))) || \
AnnaBridge 156:ff21514d8981 351 (((__INSTANCE__) == GPIOC) && (((__AF__) == GPIO_AF0_LPTIM1) || \
AnnaBridge 156:ff21514d8981 352 ((__AF__) == GPIO_AF1_LCD) || \
AnnaBridge 156:ff21514d8981 353 ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 354 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 355 ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 356 ((__AF__) == GPIO_AF7_I2C3))) || \
AnnaBridge 156:ff21514d8981 357 (((__INSTANCE__) == GPIOD) && (((__AF__) == GPIO_AF0_LPUART1) || \
AnnaBridge 156:ff21514d8981 358 ((__AF__) == GPIO_AF1_LCD) || \
AnnaBridge 156:ff21514d8981 359 ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 360 ((__AF__) == GPIO_AF6_USART5))) || \
AnnaBridge 156:ff21514d8981 361 (((__INSTANCE__) == GPIOE) && (((__AF__) == GPIO_AF0_TIM22) || \
AnnaBridge 156:ff21514d8981 362 ((__AF__) == GPIO_AF1_LCD) || \
AnnaBridge 156:ff21514d8981 363 ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 364 ((__AF__) == GPIO_AF6_USART4))) || \
AnnaBridge 156:ff21514d8981 365 (((__INSTANCE__) == GPIOH) && (((__AF__) == GPIO_AF0_USB))))
AnnaBridge 156:ff21514d8981 366
AnnaBridge 156:ff21514d8981 367 /**
AnnaBridge 156:ff21514d8981 368 * @}
AnnaBridge 156:ff21514d8981 369 */
AnnaBridge 156:ff21514d8981 370 #endif /* (STM32L083xx) || (STM32L073xx) */
AnnaBridge 156:ff21514d8981 371
AnnaBridge 156:ff21514d8981 372 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 373 /*------------------------- STM32L082xx and STM32L072xx-----------------------*/
AnnaBridge 156:ff21514d8981 374 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 375 #if defined (STM32L082xx) || defined (STM32L072xx)
AnnaBridge 156:ff21514d8981 376
AnnaBridge 156:ff21514d8981 377 /* The table below gives an overview of the different alternate functions per port.
AnnaBridge 156:ff21514d8981 378 * For more details refer yourself to the product data sheet.
AnnaBridge 156:ff21514d8981 379 */
AnnaBridge 156:ff21514d8981 380
AnnaBridge 156:ff21514d8981 381
AnnaBridge 156:ff21514d8981 382 /* | AF0 | AF1 | AF2 | AF3 | AF4 | AF5 | AF6 | AF7 |
AnnaBridge 156:ff21514d8981 383 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 384 * PA0 | | |TIM2_C1 |TSC |USART2 |TIM2_TR |USART4 |COMP1 |
AnnaBridge 156:ff21514d8981 385 * PA1 |EVENTOUT| |TIM2_C2 |TSC |USART2 |TIM21_TR|USART4 | |
AnnaBridge 156:ff21514d8981 386 * PA2 |TIM21_C1| |TIM2_C3 |TSC |USART2 | |LPUART1 |COMP2 |
AnnaBridge 156:ff21514d8981 387 * PA3 |TIM21_C2| |TIM2_C4 |TSC |USART2 | |LPUART1 | |
AnnaBridge 156:ff21514d8981 388 * PA4 |SPI1 | | |TSC |USART2 |TIM22_TR| | |
AnnaBridge 156:ff21514d8981 389 * PA5 |SPI1 | |TIM2_TR |TSC | |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 390 * PA6 |SPI1 | |TIM3_C1 |TSC |LPUART1 |TIM22_C1|EVENTOUT|COMP1 |
AnnaBridge 156:ff21514d8981 391 * PA7 |SPI1 | |TIM3_C2 |TSC | |TIM22_C2|EVENTOUT|COMP2 |
AnnaBridge 156:ff21514d8981 392 * PA8 |MCO | |USB |EVENTOUT|USART1 | | |I2C3 |
AnnaBridge 156:ff21514d8981 393 * PA9 |MCO | | |TSC |USART1 | |I2C1 |I2C3 |
AnnaBridge 156:ff21514d8981 394 * PA10| | | |TSC |USART1 | |I2C1 | |
AnnaBridge 156:ff21514d8981 395 * PA11|SPI1 | |EVENTOUT|TSC |USART1 | |I2C2 |COMP1 |
AnnaBridge 156:ff21514d8981 396 * PA12|SPI1 | |EVENTOUT|TSC |USART1 | |I2C2 |COMP2 |
AnnaBridge 156:ff21514d8981 397 * PA13|SWDIO | |USB | | | |LPUART1 | |
AnnaBridge 156:ff21514d8981 398 * PA14|SWCLK | | | |USART2 | |LPUART1 | |
AnnaBridge 156:ff21514d8981 399 * PA15|SPI1 | |TIM2_TR |EVENTOUT|USART2 |TIM2_C1 |USART4 | |
AnnaBridge 156:ff21514d8981 400 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 401 * PB0 |EVENTOUT| |TIM3_C3 |TSC | | | | |
AnnaBridge 156:ff21514d8981 402 * PB1 | | |TIM3_C4 |TSC |LPUART1 | | | |
AnnaBridge 156:ff21514d8981 403 * PB2 | | |LPTIM1_O|TSC | | | |I2C3 |
AnnaBridge 156:ff21514d8981 404 * PB3 |SPI1 | |TIM2_C2 |TSC |EVENTOUT|USART1 |USART5 | |
AnnaBridge 156:ff21514d8981 405 * PB4 |SPI1 | |TIM3_C1 |TSC |TIM22_C1|USART1 |USART5 |I2C3 |
AnnaBridge 156:ff21514d8981 406 * PB5 |SPI1 | |LPTIM1_I|I2C1 |TIM3_C2 |USART1 |USART5 | |
AnnaBridge 156:ff21514d8981 407 * | | | | |TIM22_C2| | | |
AnnaBridge 156:ff21514d8981 408 * PB6 |USART1 |I2C1 |LPTIM1_T|TSC | | | | |
AnnaBridge 156:ff21514d8981 409 * PB7 |USART1 |I2C1 |LPTIM1_I|TSC | | |USART4 | |
AnnaBridge 156:ff21514d8981 410 * PB8 | | | |TSC |I2C1 | | | |
AnnaBridge 156:ff21514d8981 411 * PB9 | | |EVENTOUT| |I2C1 |SPI2 | | |
AnnaBridge 156:ff21514d8981 412 * PB10| | |TIM2_C3 |TSC |LPUART1 |SPI2 |I2C2 |LPUART1 |
AnnaBridge 156:ff21514d8981 413 * PB11|EVENTOUT| |TIM2_C4 |TSC |LPUART1 | |I2C2 |LPUART1 |
AnnaBridge 156:ff21514d8981 414 * PB12|SPI2 | |LPUART1 |TSC | |I2C2 |EVENTOUT| |
AnnaBridge 156:ff21514d8981 415 * PB13|SPI2 | |MCO |TSC |LPUART1 |I2C2 |TIM21_C1| |
AnnaBridge 156:ff21514d8981 416 * PB14|SPI2 | |RTC |TSC |LPUART1 |I2C2 |TIM21_C2| |
AnnaBridge 156:ff21514d8981 417 * PB15|SPI2 | |RTC | | | | | |
AnnaBridge 156:ff21514d8981 418 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 419 * PC0 |LPTIM1_I| |EVENTOUT|TSC | | |LPUART1 |I2C3 |
AnnaBridge 156:ff21514d8981 420 * PC1 |LPTIM1_O| |EVENTOUT|TSC | | |LPUART1 |I2C3 |
AnnaBridge 156:ff21514d8981 421 * PC2 |LPTIM1_I| |SPI2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 422 * PC3 |LPTIM1_T| |SPI2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 423 * PC4 |EVENTOUT| |LPUART1 | | | | | |
AnnaBridge 156:ff21514d8981 424 * PC5 | | |LPUART1 |TSC | | | | |
AnnaBridge 156:ff21514d8981 425 * PC6 |TIM22_C1| |TIM3_C1 |TSC | | | | |
AnnaBridge 156:ff21514d8981 426 * PC7 |TIM22_C2| |TIM3_C2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 427 * PC8 |TIM22_TR| |TIM3_C3 |TSC | | | | |
AnnaBridge 156:ff21514d8981 428 * PC9 |TIM21_TR| |USB |TSC | | | |I2C3 |
AnnaBridge 156:ff21514d8981 429 * | | |TIM3_C4 | | | | | |
AnnaBridge 156:ff21514d8981 430 * PC10|LPUART1 | | | | | |USART4 | |
AnnaBridge 156:ff21514d8981 431 * PC11|LPUART1 | | | | | |USART4 | |
AnnaBridge 156:ff21514d8981 432 * PC12| | |USART5 | | | |USART4 | |
AnnaBridge 156:ff21514d8981 433 * PC13| | | | | | | | |
AnnaBridge 156:ff21514d8981 434 * PC14| | | | | | | | |
AnnaBridge 156:ff21514d8981 435 * PC15| | | | | | | | |
AnnaBridge 156:ff21514d8981 436 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 437 * PD0 |TIM21_C1|SPI2 | | | | | | |
AnnaBridge 156:ff21514d8981 438 * PD1 | |SPI2 | | | | | | |
AnnaBridge 156:ff21514d8981 439 * PD2 |LPUART1 | |TIM3_TR | | | |USART5 | |
AnnaBridge 156:ff21514d8981 440 * PD3 |USART2 | |SPI2 | | | | | |
AnnaBridge 156:ff21514d8981 441 * PD4 |USART2 |SPI2 | | | | | | |
AnnaBridge 156:ff21514d8981 442 * PD5 |USART2 | | | | | | | |
AnnaBridge 156:ff21514d8981 443 * PD6 |USART2 | | | | | | | |
AnnaBridge 156:ff21514d8981 444 * PD7 |USART2 |TIM21_C2| | | | | | |
AnnaBridge 156:ff21514d8981 445 * PD8 |LPUART1 | | | | | | | |
AnnaBridge 156:ff21514d8981 446 * PD9 |LPUART1 | | | | | | | |
AnnaBridge 156:ff21514d8981 447 * PD10| | | | | | | | |
AnnaBridge 156:ff21514d8981 448 * PD11|LPUART1 | | | | | | | |
AnnaBridge 156:ff21514d8981 449 * PD12|LPUART1 | | | | | | | |
AnnaBridge 156:ff21514d8981 450 * PD13| | | | | | | | |
AnnaBridge 156:ff21514d8981 451 * PD14| | | | | | | | |
AnnaBridge 156:ff21514d8981 452 * PD15|USB | | | | | | | |
AnnaBridge 156:ff21514d8981 453 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 454 * PE0 | | |EVENTOUT| | | | | |
AnnaBridge 156:ff21514d8981 455 * PE1 | | |EVENTOUT| | | | | |
AnnaBridge 156:ff21514d8981 456 * PE2 | | |TIM3_TR | | | | | |
AnnaBridge 156:ff21514d8981 457 * PE3 |TIM22_C1| |TIM3_C1 | | | | | |
AnnaBridge 156:ff21514d8981 458 * PE4 |TIM22_C2| |TIM3_C2 | | | | | |
AnnaBridge 156:ff21514d8981 459 * PE5 |TIM21_C1| |TIM3_C3 | | | | | |
AnnaBridge 156:ff21514d8981 460 * PE6 |TIM21_C2| |TIM3_C4 | | | | | |
AnnaBridge 156:ff21514d8981 461 * PE7 | | | | | | |USART5 | |
AnnaBridge 156:ff21514d8981 462 * PE8 | | | | | | |USART4 | |
AnnaBridge 156:ff21514d8981 463 * PE9 |TIM2_C1 | |TIM2_TR | | | |USART4 | |
AnnaBridge 156:ff21514d8981 464 * PE10|TIM2_C2 | | | | | |USART5 | |
AnnaBridge 156:ff21514d8981 465 * PE11|TIM2_C3 | | | | | |USART5 | |
AnnaBridge 156:ff21514d8981 466 * PE12|TIM2_C4 | |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 467 * PE13| | |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 468 * PE14| | |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 469 * PE15| | |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 470 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 471 * PH0 |USB | | | | | | | |
AnnaBridge 156:ff21514d8981 472 * PH1 | | | | | | | | |
AnnaBridge 156:ff21514d8981 473 * PH9 | | | | | | | | |
AnnaBridge 156:ff21514d8981 474 * PH10| | | | | | | | |
AnnaBridge 156:ff21514d8981 475 *
AnnaBridge 156:ff21514d8981 476 */
AnnaBridge 156:ff21514d8981 477
AnnaBridge 156:ff21514d8981 478 /** @defgroup GPIOEx_Alternate_function_selection Alternate function selection
AnnaBridge 156:ff21514d8981 479 * @{
AnnaBridge 156:ff21514d8981 480 */
AnnaBridge 156:ff21514d8981 481
AnnaBridge 156:ff21514d8981 482 /*
AnnaBridge 156:ff21514d8981 483 * Alternate function AF0
AnnaBridge 156:ff21514d8981 484 */
AnnaBridge 156:ff21514d8981 485 #define GPIO_AF0_EVENTOUT ((uint8_t)0x00U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 486 #define GPIO_AF0_TIM21 ((uint8_t)0x00U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 487 #define GPIO_AF0_SPI1 ((uint8_t)0x00U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 488 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 489 #define GPIO_AF0_SWDIO ((uint8_t)0x00U) /* SWDIO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 490 #define GPIO_AF0_SWCLK ((uint8_t)0x00U) /* SWCLK Alternate Function mapping */
AnnaBridge 156:ff21514d8981 491 #define GPIO_AF0_USART1 ((uint8_t)0x00U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 492 #define GPIO_AF0_SPI2 ((uint8_t)0x00U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 493 #define GPIO_AF0_LPTIM1 ((uint8_t)0x00U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 494 #define GPIO_AF0_TIM22 ((uint8_t)0x00U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 495 #define GPIO_AF0_LPUART1 ((uint8_t)0x00U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 496 #define GPIO_AF0_USART2 ((uint8_t)0x00U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 497 #define GPIO_AF0_TIM2 ((uint8_t)0x00U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 498 #define GPIO_AF0_USB ((uint8_t)0x00U) /* USB Alternate Function mapping */
AnnaBridge 156:ff21514d8981 499 /**
AnnaBridge 156:ff21514d8981 500 *
AnnaBridge 156:ff21514d8981 501 */
AnnaBridge 156:ff21514d8981 502
AnnaBridge 156:ff21514d8981 503 /*
AnnaBridge 156:ff21514d8981 504 * Alternate function AF1
AnnaBridge 156:ff21514d8981 505 */
AnnaBridge 156:ff21514d8981 506 #define GPIO_AF1_I2C1 ((uint8_t)0x01U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 507 #define GPIO_AF1_SPI2 ((uint8_t)0x01U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 508 #define GPIO_AF1_TIM21 ((uint8_t)0x01U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 509 /**
AnnaBridge 156:ff21514d8981 510 *
AnnaBridge 156:ff21514d8981 511 */
AnnaBridge 156:ff21514d8981 512
AnnaBridge 156:ff21514d8981 513 /*
AnnaBridge 156:ff21514d8981 514 * Alternate function AF2
AnnaBridge 156:ff21514d8981 515 */
AnnaBridge 156:ff21514d8981 516 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 517 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 518 #define GPIO_AF2_EVENTOUT ((uint8_t)0x02U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 519 #define GPIO_AF2_LPTIM1 ((uint8_t)0x02U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 520 #define GPIO_AF2_LPUART1 ((uint8_t)0x02U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 521 #define GPIO_AF2_MCO ((uint8_t)0x02U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 522 #define GPIO_AF2_RTC ((uint8_t)0x02U) /* RTC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 523 #define GPIO_AF2_SPI2 ((uint8_t)0x02U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 524 #define GPIO_AF2_USART5 ((uint8_t)0x02U) /* USART5 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 525 #define GPIO_AF2_SPI1 ((uint8_t)0x02U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 526 #define GPIO_AF2_USB ((uint8_t)0x00U) /* USB Alternate Function mapping */
AnnaBridge 156:ff21514d8981 527 /**
AnnaBridge 156:ff21514d8981 528 *
AnnaBridge 156:ff21514d8981 529 */
AnnaBridge 156:ff21514d8981 530
AnnaBridge 156:ff21514d8981 531 /*
AnnaBridge 156:ff21514d8981 532 * Alternate function AF3
AnnaBridge 156:ff21514d8981 533 */
AnnaBridge 156:ff21514d8981 534 #define GPIO_AF3_EVENTOUT ((uint8_t)0x03U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 535 #define GPIO_AF3_I2C1 ((uint8_t)0x03U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 536 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 537 /**
AnnaBridge 156:ff21514d8981 538 *
AnnaBridge 156:ff21514d8981 539 */
AnnaBridge 156:ff21514d8981 540
AnnaBridge 156:ff21514d8981 541 /*
AnnaBridge 156:ff21514d8981 542 * Alternate function AF4
AnnaBridge 156:ff21514d8981 543 */
AnnaBridge 156:ff21514d8981 544 #define GPIO_AF4_USART2 ((uint8_t)0x04U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 545 #define GPIO_AF4_LPUART1 ((uint8_t)0x04U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 546 #define GPIO_AF4_USART1 ((uint8_t)0x04U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 547 #define GPIO_AF4_EVENTOUT ((uint8_t)0x04U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 548 #define GPIO_AF4_TIM22 ((uint8_t)0x04U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 549 #define GPIO_AF4_TIM3 ((uint8_t)0x04U) /* TIM3 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 550 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 551 /**
AnnaBridge 156:ff21514d8981 552 *
AnnaBridge 156:ff21514d8981 553 */
AnnaBridge 156:ff21514d8981 554
AnnaBridge 156:ff21514d8981 555 /*
AnnaBridge 156:ff21514d8981 556 * Alternate function AF5
AnnaBridge 156:ff21514d8981 557 */
AnnaBridge 156:ff21514d8981 558 #define GPIO_AF5_TIM2 ((uint8_t)0x05U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 559 #define GPIO_AF5_TIM21 ((uint8_t)0x05U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 560 #define GPIO_AF5_TIM22 ((uint8_t)0x05U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 561 #define GPIO_AF5_USART1 ((uint8_t)0x05U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 562 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 563 #define GPIO_AF5_I2C2 ((uint8_t)0x05U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 564 /**
AnnaBridge 156:ff21514d8981 565 *
AnnaBridge 156:ff21514d8981 566 */
AnnaBridge 156:ff21514d8981 567
AnnaBridge 156:ff21514d8981 568 /*
AnnaBridge 156:ff21514d8981 569 * Alternate function AF6
AnnaBridge 156:ff21514d8981 570 */
AnnaBridge 156:ff21514d8981 571 #define GPIO_AF6_USART4 ((uint8_t)0x06U) /* USART4 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 572 #define GPIO_AF6_LPUART1 ((uint8_t)0x06U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 573 #define GPIO_AF6_EVENTOUT ((uint8_t)0x06U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 574 #define GPIO_AF6_I2C1 ((uint8_t)0x06U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 575 #define GPIO_AF6_I2C2 ((uint8_t)0x06U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 576 #define GPIO_AF6_USART5 ((uint8_t)0x06U) /* USART5 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 577 #define GPIO_AF6_TIM21 ((uint8_t)0x06U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 578 /**
AnnaBridge 156:ff21514d8981 579 *
AnnaBridge 156:ff21514d8981 580 */
AnnaBridge 156:ff21514d8981 581
AnnaBridge 156:ff21514d8981 582 /*
AnnaBridge 156:ff21514d8981 583 * Alternate function AF7
AnnaBridge 156:ff21514d8981 584 */
AnnaBridge 156:ff21514d8981 585 #define GPIO_AF7_COMP1 ((uint8_t)0x07U) /* COMP1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 586 #define GPIO_AF7_COMP2 ((uint8_t)0x07U) /* COMP2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 587 #define GPIO_AF7_I2C3 ((uint8_t)0x07U) /* I2C3 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 588 #define GPIO_AF7_LPUART1 ((uint8_t)0x07U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 589 /**
AnnaBridge 156:ff21514d8981 590 *
AnnaBridge 156:ff21514d8981 591 */
AnnaBridge 156:ff21514d8981 592
AnnaBridge 156:ff21514d8981 593 /**
AnnaBridge 156:ff21514d8981 594 * @}
AnnaBridge 156:ff21514d8981 595 */
AnnaBridge 156:ff21514d8981 596
AnnaBridge 156:ff21514d8981 597 /**
AnnaBridge 156:ff21514d8981 598 * @}
AnnaBridge 156:ff21514d8981 599 */
AnnaBridge 156:ff21514d8981 600
AnnaBridge 156:ff21514d8981 601 /** @defgroup GPIOEx_Private GPIOEx Private
AnnaBridge 156:ff21514d8981 602 * @{
AnnaBridge 156:ff21514d8981 603 */
AnnaBridge 156:ff21514d8981 604 /**
AnnaBridge 156:ff21514d8981 605 * @brief IS_GPIO_AF macro definition
AnnaBridge 156:ff21514d8981 606 */
AnnaBridge 156:ff21514d8981 607 #define IS_GPIO_AF(__AF__) (((__AF__) == GPIO_AF0_EVENTOUT) || ((__AF__) == GPIO_AF6_TIM21) || \
AnnaBridge 156:ff21514d8981 608 ((__AF__) == GPIO_AF0_SPI1) || ((__AF__) == GPIO_AF1_I2C1) || \
AnnaBridge 156:ff21514d8981 609 ((__AF__) == GPIO_AF0_TIM21) || ((__AF__) == GPIO_AF1_SPI2) || \
AnnaBridge 156:ff21514d8981 610 ((__AF__) == GPIO_AF0_MCO) || ((__AF__) == GPIO_AF1_TIM21) || \
AnnaBridge 156:ff21514d8981 611 ((__AF__) == GPIO_AF0_SWDIO) || ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 612 ((__AF__) == GPIO_AF0_SWCLK) || ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 613 ((__AF__) == GPIO_AF0_USART1) || ((__AF__) == GPIO_AF2_USB) || \
AnnaBridge 156:ff21514d8981 614 ((__AF__) == GPIO_AF0_SPI2) || ((__AF__) == GPIO_AF2_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 615 ((__AF__) == GPIO_AF0_LPTIM1) || ((__AF__) == GPIO_AF2_LPTIM1) || \
AnnaBridge 156:ff21514d8981 616 ((__AF__) == GPIO_AF0_TIM2) || ((__AF__) == GPIO_AF2_LPUART1) || \
AnnaBridge 156:ff21514d8981 617 ((__AF__) == GPIO_AF0_LPUART1) || ((__AF__) == GPIO_AF2_MCO) || \
AnnaBridge 156:ff21514d8981 618 ((__AF__) == GPIO_AF0_USART2) || ((__AF__) == GPIO_AF2_RTC) || \
AnnaBridge 156:ff21514d8981 619 ((__AF__) == GPIO_AF0_USB) || ((__AF__) == GPIO_AF2_SPI2) || \
AnnaBridge 156:ff21514d8981 620 ((__AF__) == GPIO_AF0_TIM2) || ((__AF__) == GPIO_AF2_USART5) || \
AnnaBridge 156:ff21514d8981 621 ((__AF__) == GPIO_AF3_TSC) || ((__AF__) == GPIO_AF2_SPI1) || \
AnnaBridge 156:ff21514d8981 622 ((__AF__) == GPIO_AF3_EVENTOUT) || ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 623 ((__AF__) == GPIO_AF3_I2C1) || ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 624 ((__AF__) == GPIO_AF5_TIM21) || ((__AF__) == GPIO_AF4_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 625 ((__AF__) == GPIO_AF5_TIM2) || ((__AF__) == GPIO_AF4_USART1) || \
AnnaBridge 156:ff21514d8981 626 ((__AF__) == GPIO_AF5_USART1) || ((__AF__) == GPIO_AF4_TIM22) || \
AnnaBridge 156:ff21514d8981 627 ((__AF__) == GPIO_AF5_TIM22) || ((__AF__) == GPIO_AF4_TIM3) || \
AnnaBridge 156:ff21514d8981 628 ((__AF__) == GPIO_AF5_SPI2) || ((__AF__) == GPIO_AF4_I2C1) || \
AnnaBridge 156:ff21514d8981 629 ((__AF__) == GPIO_AF5_I2C2) || ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 630 ((__AF__) == GPIO_AF7_COMP2) || ((__AF__) == GPIO_AF6_LPUART1) || \
AnnaBridge 156:ff21514d8981 631 ((__AF__) == GPIO_AF7_COMP1) || ((__AF__) == GPIO_AF6_I2C1) || \
AnnaBridge 156:ff21514d8981 632 ((__AF__) == GPIO_AF7_I2C3) || ((__AF__) == GPIO_AF6_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 633 ((__AF__) == GPIO_AF7_LPUART1) || ((__AF__) == GPIO_AF6_I2C2) || \
AnnaBridge 156:ff21514d8981 634 ((__AF__) == GPIO_AF6_USART5))
AnnaBridge 156:ff21514d8981 635
AnnaBridge 156:ff21514d8981 636 #define IS_GPIO_AF_AVAILABLE(__INSTANCE__,__AF__) \
AnnaBridge 156:ff21514d8981 637 ((((__INSTANCE__) == GPIOA) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 638 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 639 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 640 ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 641 ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 642 ((__AF__) == GPIO_AF6_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 643 ((__AF__) == GPIO_AF7_COMP1))) || \
AnnaBridge 156:ff21514d8981 644 (((__INSTANCE__) == GPIOB) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 645 ((__AF__) == GPIO_AF1_I2C1) || \
AnnaBridge 156:ff21514d8981 646 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 647 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 648 ((__AF__) == GPIO_AF4_TIM22) || \
AnnaBridge 156:ff21514d8981 649 ((__AF__) == GPIO_AF5_I2C2) || \
AnnaBridge 156:ff21514d8981 650 ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 651 ((__AF__) == GPIO_AF7_LPUART1))) || \
AnnaBridge 156:ff21514d8981 652 (((__INSTANCE__) == GPIOC) && (((__AF__) == GPIO_AF0_TIM22) || \
AnnaBridge 156:ff21514d8981 653 ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 654 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 655 ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 656 ((__AF__) == GPIO_AF7_I2C3))) || \
AnnaBridge 156:ff21514d8981 657 (((__INSTANCE__) == GPIOD) && (((__AF__) == GPIO_AF0_TIM21) || \
AnnaBridge 156:ff21514d8981 658 ((__AF__) == GPIO_AF1_TIM21) || \
AnnaBridge 156:ff21514d8981 659 ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 660 ((__AF__) == GPIO_AF6_USART5))) || \
AnnaBridge 156:ff21514d8981 661 (((__INSTANCE__) == GPIOE) && (((__AF__) == GPIO_AF0_TIM22) || \
AnnaBridge 156:ff21514d8981 662 ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 663 ((__AF__) == GPIO_AF6_USART4))) || \
AnnaBridge 156:ff21514d8981 664 (((__INSTANCE__) == GPIOH) && (((__AF__) == GPIO_AF0_USB))))
AnnaBridge 156:ff21514d8981 665
AnnaBridge 156:ff21514d8981 666 /**
AnnaBridge 156:ff21514d8981 667 * @}
AnnaBridge 156:ff21514d8981 668 */
AnnaBridge 156:ff21514d8981 669 #endif /* (STM32L082xx) || (STM32L072xx) */
AnnaBridge 156:ff21514d8981 670
AnnaBridge 156:ff21514d8981 671
AnnaBridge 156:ff21514d8981 672 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 673 /*------------------------- STM32L081xx and STM32L071xx-----------------------*/
AnnaBridge 156:ff21514d8981 674 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 675 #if defined (STM32L081xx) || defined (STM32L071xx)
AnnaBridge 156:ff21514d8981 676
AnnaBridge 156:ff21514d8981 677 /* The table below gives an overview of the different alternate functions per port.
AnnaBridge 156:ff21514d8981 678 * For more details refer yourself to the product data sheet.
AnnaBridge 156:ff21514d8981 679 *
AnnaBridge 156:ff21514d8981 680 */
AnnaBridge 156:ff21514d8981 681
AnnaBridge 156:ff21514d8981 682
AnnaBridge 156:ff21514d8981 683 /* | AF0 | AF1 | AF2 | AF3 | AF4 | AF5 | AF6 | AF7 |
AnnaBridge 156:ff21514d8981 684 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 685 * PA0 | | |TIM2_C1 | |USART2 |TIM2_TR |USART4 |COMP1 |
AnnaBridge 156:ff21514d8981 686 * PA1 |EVENTOUT| |TIM2_C2 | |USART2 |TIM21_TR|USART4 | |
AnnaBridge 156:ff21514d8981 687 * PA2 |TIM21_C1| |TIM2_C3 | |USART2 | |LPUART1 |COMP2 |
AnnaBridge 156:ff21514d8981 688 * PA3 |TIM21_C2| |TIM2_C4 | |USART2 | |LPUART1 | |
AnnaBridge 156:ff21514d8981 689 * PA4 |SPI1 | | | |USART2 |TIM22_TR| | |
AnnaBridge 156:ff21514d8981 690 * PA5 |SPI1 | |TIM2_TR | | |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 691 * PA6 |SPI1 | |TIM3_C1 | |LPUART1 |TIM22_C1|EVENTOUT|COMP1 |
AnnaBridge 156:ff21514d8981 692 * PA7 |SPI1 | |TIM3_C2 | | |TIM22_C2|EVENTOUT|COMP2 |
AnnaBridge 156:ff21514d8981 693 * PA8 |MCO | | |EVENTOUT|USART1 | | |I2C3 |
AnnaBridge 156:ff21514d8981 694 * PA9 |MCO | | | |USART1 | |I2C1 |I2C3 |
AnnaBridge 156:ff21514d8981 695 * PA10| | | | |USART1 | |I2C1 | |
AnnaBridge 156:ff21514d8981 696 * PA11|SPI1 | |EVENTOUT| |USART1 | |I2C2 |COMP1 |
AnnaBridge 156:ff21514d8981 697 * PA12|SPI1 | |EVENTOUT| |USART1 | |I2C2 |COMP2 |
AnnaBridge 156:ff21514d8981 698 * PA13|SWDIO | | | | | |LPUART1 | |
AnnaBridge 156:ff21514d8981 699 * PA14|SWCLK | | | |USART2 | |LPUART1 | |
AnnaBridge 156:ff21514d8981 700 * PA15|SPI1 | |TIM2_TR |EVENTOUT|USART2 |TIM2_C1 |USART4 | |
AnnaBridge 156:ff21514d8981 701 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 702 * PB0 |EVENTOUT| |TIM3_C3 | | | | | |
AnnaBridge 156:ff21514d8981 703 * PB1 | | |TIM3_C4 | |LPUART1 | | | |
AnnaBridge 156:ff21514d8981 704 * PB2 | | |LPTIM1_O| | | | |I2C3 |
AnnaBridge 156:ff21514d8981 705 * PB3 |SPI1 | |TIM2_C2 | |EVENTOUT|USART1 |USART5 | |
AnnaBridge 156:ff21514d8981 706 * PB4 |SPI1 | |TIM3_C1 | |TIM22_C1|USART1 |USART5 |I2C3 |
AnnaBridge 156:ff21514d8981 707 * PB5 |SPI1 | |LPTIM1_I|I2C1 |TIM3_C2 |USART1 |USART5 | |
AnnaBridge 156:ff21514d8981 708 * | | | | |TIM22_C2| | | |
AnnaBridge 156:ff21514d8981 709 * PB6 |USART1 |I2C1 |LPTIM1_T| | | | | |
AnnaBridge 156:ff21514d8981 710 * PB7 |USART1 |I2C1 |LPTIM1_I| | | |USART4 | |
AnnaBridge 156:ff21514d8981 711 * PB8 | | | | |I2C1 | | | |
AnnaBridge 156:ff21514d8981 712 * PB9 | | |EVENTOUT| |I2C1 |SPI2 | | |
AnnaBridge 156:ff21514d8981 713 * PB10| | |TIM2_C3 | |LPUART1 |SPI2 |I2C2 |LPUART1 |
AnnaBridge 156:ff21514d8981 714 * PB11|EVENTOUT| |TIM2_C4 | |LPUART1 | |I2C2 |LPUART1 |
AnnaBridge 156:ff21514d8981 715 * PB12|SPI2 | |LPUART1 | | |I2C2 |EVENTOUT| |
AnnaBridge 156:ff21514d8981 716 * PB13|SPI2 | |MCO | |LPUART1 |I2C2 |TIM21_C1| |
AnnaBridge 156:ff21514d8981 717 * PB14|SPI2 | |RTC | |LPUART1 |I2C2 |TIM21_C2| |
AnnaBridge 156:ff21514d8981 718 * PB15|SPI2 | |RTC | | | | | |
AnnaBridge 156:ff21514d8981 719 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 720 * PC0 |LPTIM1_I| |EVENTOUT| | | |LPUART1 |I2C3 |
AnnaBridge 156:ff21514d8981 721 * PC1 |LPTIM1_O| |EVENTOUT| | | |LPUART1 |I2C3 |
AnnaBridge 156:ff21514d8981 722 * PC2 |LPTIM1_I| |SPI2 | | | | | |
AnnaBridge 156:ff21514d8981 723 * PC3 |LPTIM1_T| |SPI2 | | | | | |
AnnaBridge 156:ff21514d8981 724 * PC4 |EVENTOUT| |LPUART1 | | | | | |
AnnaBridge 156:ff21514d8981 725 * PC5 | | |LPUART1 | | | | | |
AnnaBridge 156:ff21514d8981 726 * PC6 |TIM22_C1| |TIM3_C1 | | | | | |
AnnaBridge 156:ff21514d8981 727 * PC7 |TIM22_C2| |TIM3_C2 | | | | | |
AnnaBridge 156:ff21514d8981 728 * PC8 |TIM22_TR| |TIM3_C3 | | | | | |
AnnaBridge 156:ff21514d8981 729 * PC9 |TIM21_TR| | | | | | |I2C3 |
AnnaBridge 156:ff21514d8981 730 * | | |TIM3_C4 | | | | | |
AnnaBridge 156:ff21514d8981 731 * PC10|LPUART1 | | | | | |USART4 | |
AnnaBridge 156:ff21514d8981 732 * PC11|LPUART1 | | | | | |USART4 | |
AnnaBridge 156:ff21514d8981 733 * PC12| | |USART5 | | | |USART4 | |
AnnaBridge 156:ff21514d8981 734 * PC13| | | | | | | | |
AnnaBridge 156:ff21514d8981 735 * PC14| | | | | | | | |
AnnaBridge 156:ff21514d8981 736 * PC15| | | | | | | | |
AnnaBridge 156:ff21514d8981 737 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 738 * PD0 |TIM21_C1|SPI2 | | | | | | |
AnnaBridge 156:ff21514d8981 739 * PD1 | |SPI2 | | | | | | |
AnnaBridge 156:ff21514d8981 740 * PD2 |LPUART1 | |TIM3_TR | | | |USART5 | |
AnnaBridge 156:ff21514d8981 741 * PD3 |USART2 | |SPI2 | | | | | |
AnnaBridge 156:ff21514d8981 742 * PD4 |USART2 |SPI2 | | | | | | |
AnnaBridge 156:ff21514d8981 743 * PD5 |USART2 | | | | | | | |
AnnaBridge 156:ff21514d8981 744 * PD6 |USART2 | | | | | | | |
AnnaBridge 156:ff21514d8981 745 * PD7 |USART2 |TIM21_C2| | | | | | |
AnnaBridge 156:ff21514d8981 746 * PD8 |LPUART1 | | | | | | | |
AnnaBridge 156:ff21514d8981 747 * PD9 |LPUART1 | | | | | | | |
AnnaBridge 156:ff21514d8981 748 * PD10| | | | | | | | |
AnnaBridge 156:ff21514d8981 749 * PD11|LPUART1 | | | | | | | |
AnnaBridge 156:ff21514d8981 750 * PD12|LPUART1 | | | | | | | |
AnnaBridge 156:ff21514d8981 751 * PD13| | | | | | | | |
AnnaBridge 156:ff21514d8981 752 * PD14| | | | | | | | |
AnnaBridge 156:ff21514d8981 753 * PD15| | | | | | | | |
AnnaBridge 156:ff21514d8981 754 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 755 * PE0 | | |EVENTOUT| | | | | |
AnnaBridge 156:ff21514d8981 756 * PE1 | | |EVENTOUT| | | | | |
AnnaBridge 156:ff21514d8981 757 * PE2 | | |TIM3_TR | | | | | |
AnnaBridge 156:ff21514d8981 758 * PE3 |TIM22_C1| |TIM3_C1 | | | | | |
AnnaBridge 156:ff21514d8981 759 * PE4 |TIM22_C2| |TIM3_C2 | | | | | |
AnnaBridge 156:ff21514d8981 760 * PE5 |TIM21_C1| |TIM3_C3 | | | | | |
AnnaBridge 156:ff21514d8981 761 * PE6 |TIM21_C2| |TIM3_C4 | | | | | |
AnnaBridge 156:ff21514d8981 762 * PE7 | | | | | | |USART5 | |
AnnaBridge 156:ff21514d8981 763 * PE8 | | | | | | |USART4 | |
AnnaBridge 156:ff21514d8981 764 * PE9 |TIM2_C1 | |TIM2_TR | | | |USART4 | |
AnnaBridge 156:ff21514d8981 765 * PE10|TIM2_C2 | | | | | |USART5 | |
AnnaBridge 156:ff21514d8981 766 * PE11|TIM2_C3 | | | | | |USART5 | |
AnnaBridge 156:ff21514d8981 767 * PE12|TIM2_C4 | |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 768 * PE13| | |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 769 * PE14| | |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 770 * PE15| | |SPI1 | | | | | |
AnnaBridge 156:ff21514d8981 771 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 772 * PH0 | | | | | | | | |
AnnaBridge 156:ff21514d8981 773 * PH1 | | | | | | | | |
AnnaBridge 156:ff21514d8981 774 * PH9 | | | | | | | | |
AnnaBridge 156:ff21514d8981 775 * PH10| | | | | | | | |
AnnaBridge 156:ff21514d8981 776 *
AnnaBridge 156:ff21514d8981 777 */
AnnaBridge 156:ff21514d8981 778
AnnaBridge 156:ff21514d8981 779 /** @defgroup GPIOEx_Alternate_function_selection Alternate function selection
AnnaBridge 156:ff21514d8981 780 * @{
AnnaBridge 156:ff21514d8981 781 */
AnnaBridge 156:ff21514d8981 782
AnnaBridge 156:ff21514d8981 783 /*
AnnaBridge 156:ff21514d8981 784 * Alternate function AF0
AnnaBridge 156:ff21514d8981 785 *
AnnaBridge 156:ff21514d8981 786 */
AnnaBridge 156:ff21514d8981 787 #define GPIO_AF0_EVENTOUT ((uint8_t)0x00U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 788 #define GPIO_AF0_TIM21 ((uint8_t)0x00U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 789 #define GPIO_AF0_SPI1 ((uint8_t)0x00U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 790 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 791 #define GPIO_AF0_SWDIO ((uint8_t)0x00U) /* SWDIO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 792 #define GPIO_AF0_SWCLK ((uint8_t)0x00U) /* SWCLK Alternate Function mapping */
AnnaBridge 156:ff21514d8981 793 #define GPIO_AF0_USART1 ((uint8_t)0x00U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 794 #define GPIO_AF0_SPI2 ((uint8_t)0x00U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 795 #define GPIO_AF0_LPTIM1 ((uint8_t)0x00U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 796 #define GPIO_AF0_TIM22 ((uint8_t)0x00U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 797 #define GPIO_AF0_LPUART1 ((uint8_t)0x00U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 798 #define GPIO_AF0_USART2 ((uint8_t)0x00U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 799 #define GPIO_AF0_TIM2 ((uint8_t)0x00U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 800 /**
AnnaBridge 156:ff21514d8981 801 *
AnnaBridge 156:ff21514d8981 802 */
AnnaBridge 156:ff21514d8981 803
AnnaBridge 156:ff21514d8981 804 /*
AnnaBridge 156:ff21514d8981 805 * Alternate function AF1
AnnaBridge 156:ff21514d8981 806 *
AnnaBridge 156:ff21514d8981 807 */
AnnaBridge 156:ff21514d8981 808 #define GPIO_AF1_I2C1 ((uint8_t)0x01U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 809 #define GPIO_AF1_SPI2 ((uint8_t)0x01U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 810 #define GPIO_AF1_TIM21 ((uint8_t)0x01U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 811 /**
AnnaBridge 156:ff21514d8981 812 *
AnnaBridge 156:ff21514d8981 813 */
AnnaBridge 156:ff21514d8981 814
AnnaBridge 156:ff21514d8981 815 /*
AnnaBridge 156:ff21514d8981 816 * Alternate function AF2
AnnaBridge 156:ff21514d8981 817 *
AnnaBridge 156:ff21514d8981 818 */
AnnaBridge 156:ff21514d8981 819 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 820 #define GPIO_AF2_TIM3 ((uint8_t)0x02U) /* TIM3 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 821 #define GPIO_AF2_EVENTOUT ((uint8_t)0x02U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 822 #define GPIO_AF2_LPTIM1 ((uint8_t)0x02U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 823 #define GPIO_AF2_LPUART1 ((uint8_t)0x02U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 824 #define GPIO_AF2_MCO ((uint8_t)0x02U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 825 #define GPIO_AF2_RTC ((uint8_t)0x02U) /* RTC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 826 #define GPIO_AF2_SPI2 ((uint8_t)0x02U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 827 #define GPIO_AF2_USART5 ((uint8_t)0x02U) /* USART5 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 828 #define GPIO_AF2_SPI1 ((uint8_t)0x02U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 829 /**
AnnaBridge 156:ff21514d8981 830 *
AnnaBridge 156:ff21514d8981 831 */
AnnaBridge 156:ff21514d8981 832
AnnaBridge 156:ff21514d8981 833 /*
AnnaBridge 156:ff21514d8981 834 * Alternate function AF3
AnnaBridge 156:ff21514d8981 835 * @{
AnnaBridge 156:ff21514d8981 836 */
AnnaBridge 156:ff21514d8981 837 #define GPIO_AF3_EVENTOUT ((uint8_t)0x03U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 838 #define GPIO_AF3_I2C1 ((uint8_t)0x03U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 839 /**
AnnaBridge 156:ff21514d8981 840 *
AnnaBridge 156:ff21514d8981 841 */
AnnaBridge 156:ff21514d8981 842
AnnaBridge 156:ff21514d8981 843 /*
AnnaBridge 156:ff21514d8981 844 * Alternate function AF4
AnnaBridge 156:ff21514d8981 845 *
AnnaBridge 156:ff21514d8981 846 */
AnnaBridge 156:ff21514d8981 847 #define GPIO_AF4_USART2 ((uint8_t)0x04U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 848 #define GPIO_AF4_LPUART1 ((uint8_t)0x04U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 849 #define GPIO_AF4_USART1 ((uint8_t)0x04U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 850 #define GPIO_AF4_EVENTOUT ((uint8_t)0x04U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 851 #define GPIO_AF4_TIM22 ((uint8_t)0x04U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 852 #define GPIO_AF4_TIM3 ((uint8_t)0x04U) /* TIM3 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 853 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 854 /**
AnnaBridge 156:ff21514d8981 855 *
AnnaBridge 156:ff21514d8981 856 */
AnnaBridge 156:ff21514d8981 857
AnnaBridge 156:ff21514d8981 858 /*
AnnaBridge 156:ff21514d8981 859 * Alternate function AF5
AnnaBridge 156:ff21514d8981 860 *
AnnaBridge 156:ff21514d8981 861 */
AnnaBridge 156:ff21514d8981 862 #define GPIO_AF5_TIM2 ((uint8_t)0x05U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 863 #define GPIO_AF5_TIM21 ((uint8_t)0x05U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 864 #define GPIO_AF5_TIM22 ((uint8_t)0x05U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 865 #define GPIO_AF5_USART1 ((uint8_t)0x05U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 866 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 867 #define GPIO_AF5_I2C2 ((uint8_t)0x05U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 868 /**
AnnaBridge 156:ff21514d8981 869 *
AnnaBridge 156:ff21514d8981 870 */
AnnaBridge 156:ff21514d8981 871
AnnaBridge 156:ff21514d8981 872 /*
AnnaBridge 156:ff21514d8981 873 * Alternate function AF6
AnnaBridge 156:ff21514d8981 874 *
AnnaBridge 156:ff21514d8981 875 */
AnnaBridge 156:ff21514d8981 876 #define GPIO_AF6_USART4 ((uint8_t)0x06U) /* USART4 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 877 #define GPIO_AF6_LPUART1 ((uint8_t)0x06U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 878 #define GPIO_AF6_EVENTOUT ((uint8_t)0x06U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 879 #define GPIO_AF6_I2C1 ((uint8_t)0x06U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 880 #define GPIO_AF6_I2C2 ((uint8_t)0x06U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 881 #define GPIO_AF6_USART5 ((uint8_t)0x06U) /* USART5 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 882 #define GPIO_AF6_TIM21 ((uint8_t)0x06U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 883 /**
AnnaBridge 156:ff21514d8981 884 *
AnnaBridge 156:ff21514d8981 885 */
AnnaBridge 156:ff21514d8981 886
AnnaBridge 156:ff21514d8981 887 /*
AnnaBridge 156:ff21514d8981 888 * Alternate function AF7
AnnaBridge 156:ff21514d8981 889 *
AnnaBridge 156:ff21514d8981 890 */
AnnaBridge 156:ff21514d8981 891 #define GPIO_AF7_COMP1 ((uint8_t)0x07U) /* COMP1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 892 #define GPIO_AF7_COMP2 ((uint8_t)0x07U) /* COMP2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 893 #define GPIO_AF7_I2C3 ((uint8_t)0x07U) /* I2C3 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 894 #define GPIO_AF7_LPUART1 ((uint8_t)0x07U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 895 /**
AnnaBridge 156:ff21514d8981 896 *
AnnaBridge 156:ff21514d8981 897 */
AnnaBridge 156:ff21514d8981 898
AnnaBridge 156:ff21514d8981 899 /**
AnnaBridge 156:ff21514d8981 900 * @}
AnnaBridge 156:ff21514d8981 901 */
AnnaBridge 156:ff21514d8981 902
AnnaBridge 156:ff21514d8981 903 /**
AnnaBridge 156:ff21514d8981 904 * @}
AnnaBridge 156:ff21514d8981 905 */
AnnaBridge 156:ff21514d8981 906
AnnaBridge 156:ff21514d8981 907 /** @defgroup GPIOEx_Private GPIOEx Private
AnnaBridge 156:ff21514d8981 908 * @{
AnnaBridge 156:ff21514d8981 909 */
AnnaBridge 156:ff21514d8981 910
AnnaBridge 156:ff21514d8981 911 /**
AnnaBridge 156:ff21514d8981 912 * IS_GPIO_AF macro definition
AnnaBridge 156:ff21514d8981 913 */
AnnaBridge 156:ff21514d8981 914 #define IS_GPIO_AF(__AF__) (((__AF__) == GPIO_AF0_EVENTOUT) || ((__AF__) == GPIO_AF7_LPUART1) || \
AnnaBridge 156:ff21514d8981 915 ((__AF__) == GPIO_AF0_SPI1) || ((__AF__) == GPIO_AF1_I2C1) || \
AnnaBridge 156:ff21514d8981 916 ((__AF__) == GPIO_AF0_TIM21) || ((__AF__) == GPIO_AF1_SPI2) || \
AnnaBridge 156:ff21514d8981 917 ((__AF__) == GPIO_AF0_MCO) || ((__AF__) == GPIO_AF1_TIM21) || \
AnnaBridge 156:ff21514d8981 918 ((__AF__) == GPIO_AF0_SWDIO) || ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 919 ((__AF__) == GPIO_AF0_SWCLK) || ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 920 ((__AF__) == GPIO_AF0_USART1) || ((__AF__) == GPIO_AF6_TIM21) || \
AnnaBridge 156:ff21514d8981 921 ((__AF__) == GPIO_AF0_SPI2) || ((__AF__) == GPIO_AF2_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 922 ((__AF__) == GPIO_AF0_LPTIM1) || ((__AF__) == GPIO_AF2_LPTIM1) || \
AnnaBridge 156:ff21514d8981 923 ((__AF__) == GPIO_AF0_TIM2) || ((__AF__) == GPIO_AF2_LPUART1) || \
AnnaBridge 156:ff21514d8981 924 ((__AF__) == GPIO_AF0_LPUART1) || ((__AF__) == GPIO_AF2_MCO) || \
AnnaBridge 156:ff21514d8981 925 ((__AF__) == GPIO_AF0_USART2) || ((__AF__) == GPIO_AF2_RTC) || \
AnnaBridge 156:ff21514d8981 926 ((__AF__) == GPIO_AF2_SPI2) || ((__AF__) == GPIO_AF6_USART5) || \
AnnaBridge 156:ff21514d8981 927 ((__AF__) == GPIO_AF0_TIM2) || ((__AF__) == GPIO_AF2_USART5) || \
AnnaBridge 156:ff21514d8981 928 ((__AF__) == GPIO_AF2_SPI1) || ((__AF__) == GPIO_AF6_I2C2) || \
AnnaBridge 156:ff21514d8981 929 ((__AF__) == GPIO_AF3_EVENTOUT) || ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 930 ((__AF__) == GPIO_AF3_I2C1) || ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 931 ((__AF__) == GPIO_AF5_TIM21) || ((__AF__) == GPIO_AF4_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 932 ((__AF__) == GPIO_AF5_TIM2) || ((__AF__) == GPIO_AF4_USART1) || \
AnnaBridge 156:ff21514d8981 933 ((__AF__) == GPIO_AF5_USART1) || ((__AF__) == GPIO_AF4_TIM22) || \
AnnaBridge 156:ff21514d8981 934 ((__AF__) == GPIO_AF5_TIM22) || ((__AF__) == GPIO_AF4_TIM3) || \
AnnaBridge 156:ff21514d8981 935 ((__AF__) == GPIO_AF5_SPI2) || ((__AF__) == GPIO_AF4_I2C1) || \
AnnaBridge 156:ff21514d8981 936 ((__AF__) == GPIO_AF5_I2C2) || ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 937 ((__AF__) == GPIO_AF7_COMP2) || ((__AF__) == GPIO_AF6_LPUART1) || \
AnnaBridge 156:ff21514d8981 938 ((__AF__) == GPIO_AF7_COMP1) || ((__AF__) == GPIO_AF6_I2C1) || \
AnnaBridge 156:ff21514d8981 939 ((__AF__) == GPIO_AF7_I2C3) || ((__AF__) == GPIO_AF6_EVENTOUT))
AnnaBridge 156:ff21514d8981 940
AnnaBridge 156:ff21514d8981 941
AnnaBridge 156:ff21514d8981 942 #define IS_GPIO_AF_AVAILABLE(__INSTANCE__,__AF__) \
AnnaBridge 156:ff21514d8981 943 ((((__INSTANCE__) == GPIOA) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 944 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 945 ((__AF__) == GPIO_AF3_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 946 ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 947 ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 948 ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 949 ((__AF__) == GPIO_AF7_COMP1))) || \
AnnaBridge 156:ff21514d8981 950 (((__INSTANCE__) == GPIOB) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 951 ((__AF__) == GPIO_AF1_I2C1) || \
AnnaBridge 156:ff21514d8981 952 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 953 ((__AF__) == GPIO_AF3_I2C1) || \
AnnaBridge 156:ff21514d8981 954 ((__AF__) == GPIO_AF4_I2C1) || \
AnnaBridge 156:ff21514d8981 955 ((__AF__) == GPIO_AF5_I2C2) || \
AnnaBridge 156:ff21514d8981 956 ((__AF__) == GPIO_AF6_USART4) || \
AnnaBridge 156:ff21514d8981 957 ((__AF__) == GPIO_AF7_LPUART1))) || \
AnnaBridge 156:ff21514d8981 958 (((__INSTANCE__) == GPIOC) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 959 ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 960 ((__AF__) == GPIO_AF6_LPUART1) || \
AnnaBridge 156:ff21514d8981 961 ((__AF__) == GPIO_AF7_I2C3))) || \
AnnaBridge 156:ff21514d8981 962 (((__INSTANCE__) == GPIOD) && (((__AF__) == GPIO_AF0_LPUART1) || \
AnnaBridge 156:ff21514d8981 963 ((__AF__) == GPIO_AF1_SPI2) || \
AnnaBridge 156:ff21514d8981 964 ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 965 ((__AF__) == GPIO_AF6_USART5))) || \
AnnaBridge 156:ff21514d8981 966 (((__INSTANCE__) == GPIOE) && (((__AF__) == GPIO_AF0_TIM22) || \
AnnaBridge 156:ff21514d8981 967 ((__AF__) == GPIO_AF2_TIM3) || \
AnnaBridge 156:ff21514d8981 968 ((__AF__) == GPIO_AF6_USART4))))
AnnaBridge 156:ff21514d8981 969
AnnaBridge 156:ff21514d8981 970 /**
AnnaBridge 156:ff21514d8981 971 * @}
AnnaBridge 156:ff21514d8981 972 */
AnnaBridge 156:ff21514d8981 973 #endif /* (STM32L081xx) || (STM32L071xx) */
AnnaBridge 156:ff21514d8981 974
AnnaBridge 156:ff21514d8981 975 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 976 /*------------------------- STM32L053xx/STM32L063xx---------------------------*/
AnnaBridge 156:ff21514d8981 977 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 978 #if defined (STM32L053xx) || defined (STM32L063xx)
AnnaBridge 156:ff21514d8981 979
AnnaBridge 156:ff21514d8981 980 /* The table below gives an overview of the different alternate functions per port.
AnnaBridge 156:ff21514d8981 981 * For more details refer yourself to the product data sheet.
AnnaBridge 156:ff21514d8981 982 *
AnnaBridge 156:ff21514d8981 983 */
AnnaBridge 156:ff21514d8981 984 /* | AF0 | AF1 | AF2 | AF3 | AF4 | AF5 | AF6 | AF7 |
AnnaBridge 156:ff21514d8981 985 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 986 * PA0 | | |TIM2_C1 |TSC |USART2 |TIM2_TR | |COMP1 |
AnnaBridge 156:ff21514d8981 987 * PA1 |EVENTOUT|LCD |TIM2_C2 |TSC |USART2 |TIM21_TR| | |
AnnaBridge 156:ff21514d8981 988 * PA2 |TIM21_C1|LCD |TIM2_C3 |TSC |USART2 | | |COMP2 |
AnnaBridge 156:ff21514d8981 989 * PA3 |TIM21_C2|LCD |TIM2_C4 |TSC |USART2 | | | |
AnnaBridge 156:ff21514d8981 990 * PA4 |SPI1 | | |TSC |USART2 |TIM22_TR| | |
AnnaBridge 156:ff21514d8981 991 * PA5 |SPI1 | |TIM2_TR |TSC | |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 992 * PA6 |SPI1 |LCD | |TSC |LPUART |TIM22_C1|EVENTOUT|COMP1 |
AnnaBridge 156:ff21514d8981 993 * PA7 |SPI1 |LCD | |TSC | |TIM22_C2|EVENTOUT|COMP2 |
AnnaBridge 156:ff21514d8981 994 * PA8 |MCO |LCD |USB |EVENTOUT|USART1 | | | |
AnnaBridge 156:ff21514d8981 995 * PA9 |MCO |LCD | |TSC |USART1 | | | |
AnnaBridge 156:ff21514d8981 996 * PA10| |LCD | |TSC |USART1 | | | |
AnnaBridge 156:ff21514d8981 997 * PA11|SPI1 | |EVENTOUT|TSC |USART1 | | |COMP1 |
AnnaBridge 156:ff21514d8981 998 * PA12|SPI1 | |EVENTOUT|TSC |USART1 | | |COMP2 |
AnnaBridge 156:ff21514d8981 999 * PA13|SWDIO | |USB | | | | | |
AnnaBridge 156:ff21514d8981 1000 * PA14|SWCLK | | | |USART2 | | | |
AnnaBridge 156:ff21514d8981 1001 * PA15|SPI1 |LCD |TIM2_TR |EVENTOUT|USART2 |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1002 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1003 * PB0 |EVENTOUT|LCD | |TSC | | | | |
AnnaBridge 156:ff21514d8981 1004 * PB1 | |LCD | |TSC |LPUART1 | | | |
AnnaBridge 156:ff21514d8981 1005 * PB2 | | |LPTIM1_O|TSC | | | | |
AnnaBridge 156:ff21514d8981 1006 * PB3 |SPI1 |LCD |TIM2_C2 |TSC |EVENTOUT| | | |
AnnaBridge 156:ff21514d8981 1007 * PB4 |SPI1 |LCD |EVENTOUT|TSC |TIM22_C1| | | |
AnnaBridge 156:ff21514d8981 1008 * PB5 |SPI1 |LCD |LPTIM1_I|I2C1 |TIM22_C2| | | |
AnnaBridge 156:ff21514d8981 1009 * PB6 |USART1 |I2C1 |LPTIM1_T|TSC | | | | |
AnnaBridge 156:ff21514d8981 1010 * PB7 |USART1 |I2C1 |LPTIM1_I|TSC | | | | |
AnnaBridge 156:ff21514d8981 1011 * PB8 | |LCD | |TSC |I2C1 | | | |
AnnaBridge 156:ff21514d8981 1012 * PB9 | |LCD |EVENTOUT| |I2C1 |SPI2 | | |
AnnaBridge 156:ff21514d8981 1013 * PB10| |LCD |TIM2_C3 |TSC |LPUART1 |SPI2 |I2C2 | |
AnnaBridge 156:ff21514d8981 1014 * PB11|EVENTOUT|LCD |TIM2_C4 |TSC |LPUART1 | |I2C2 | |
AnnaBridge 156:ff21514d8981 1015 * PB12|SPI2 |LCD |LPUART1 |TSC | |I2C2 |EVENTOUT| |
AnnaBridge 156:ff21514d8981 1016 * PB13|SPI2 |LCD | |TSC |LPUART1 |I2C2 |TIM21_C1| |
AnnaBridge 156:ff21514d8981 1017 * PB14|SPI2 |LCD |RTC |TSC |LPUART1 |I2C2 |TIM21_C2| |
AnnaBridge 156:ff21514d8981 1018 * PB15|SPI2 |LCD |RTC | | | | | |
AnnaBridge 156:ff21514d8981 1019 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1020 * PC0 |LPTIM1_I|LCD |EVENTOUT|TSC | | | | |
AnnaBridge 156:ff21514d8981 1021 * PC1 |LPTIM1_O|LCD |EVENTOUT|TSC | | | | |
AnnaBridge 156:ff21514d8981 1022 * PC2 |LPTIM1_I|LCD |SPI2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 1023 * PC3 |LPTIM1_T|LCD |SPI2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 1024 * PC4 |EVENTOUT|LCD |LPUART | | | | | |
AnnaBridge 156:ff21514d8981 1025 * PC5 | |LCD |LPUART |TSC | | | | |
AnnaBridge 156:ff21514d8981 1026 * PC6 |TIM22_C1|LCD | |TSC | | | | |
AnnaBridge 156:ff21514d8981 1027 * PC7 |TIM22_C2|LCD | |TSC | | | | |
AnnaBridge 156:ff21514d8981 1028 * PC8 |TIM22_TR|LCD | |TSC | | | | |
AnnaBridge 156:ff21514d8981 1029 * PC9 |TIM21_TR|LCD |USB |TSC | | | | |
AnnaBridge 156:ff21514d8981 1030 * PC10|LPUART |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 1031 * PC11|LPUART |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 1032 * PC12| |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 1033 * PC13| | | | | | | | |
AnnaBridge 156:ff21514d8981 1034 * PC14| | | | | | | | |
AnnaBridge 156:ff21514d8981 1035 * PC15| | | | | | | | |
AnnaBridge 156:ff21514d8981 1036 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1037 * PD2 |LPUART |LCD | | | | | | |
AnnaBridge 156:ff21514d8981 1038 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1039 * PH0 |USB | | | | | | | |
AnnaBridge 156:ff21514d8981 1040 * PH1 | | | | | | | | |
AnnaBridge 156:ff21514d8981 1041 * *
AnnaBridge 156:ff21514d8981 1042 */
AnnaBridge 156:ff21514d8981 1043
AnnaBridge 156:ff21514d8981 1044 /** @defgroup GPIOEx_Alternate_function_selection Alternate function selection
AnnaBridge 156:ff21514d8981 1045 * @{
AnnaBridge 156:ff21514d8981 1046 */
AnnaBridge 156:ff21514d8981 1047
AnnaBridge 156:ff21514d8981 1048 /*
AnnaBridge 156:ff21514d8981 1049 * Alternate function AF0
AnnaBridge 156:ff21514d8981 1050 */
AnnaBridge 156:ff21514d8981 1051 #define GPIO_AF0_SPI1 ((uint8_t)0x00U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1052 #define GPIO_AF0_SPI2 ((uint8_t)0x00U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1053 #define GPIO_AF0_USART1 ((uint8_t)0x00U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1054 #define GPIO_AF0_USART2 ((uint8_t)0x00U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1055 #define GPIO_AF0_LPUART1 ((uint8_t)0x00U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1056 #define GPIO_AF0_USB ((uint8_t)0x00U) /* USB Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1057 #define GPIO_AF0_LPTIM1 ((uint8_t)0x00U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1058 #define GPIO_AF0_TSC ((uint8_t)0x00U) /* TSC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1059 #define GPIO_AF0_TIM2 ((uint8_t)0x00U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1060 #define GPIO_AF0_TIM21 ((uint8_t)0x00U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1061 #define GPIO_AF0_TIM22 ((uint8_t)0x00U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1062 #define GPIO_AF0_EVENTOUT ((uint8_t)0x00U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1063 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1064 #define GPIO_AF0_SWDIO ((uint8_t)0x00U) /* SWDIO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1065 #define GPIO_AF0_SWCLK ((uint8_t)0x00U) /* SWCLK Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1066 /**
AnnaBridge 156:ff21514d8981 1067 *
AnnaBridge 156:ff21514d8981 1068 */
AnnaBridge 156:ff21514d8981 1069
AnnaBridge 156:ff21514d8981 1070 /*
AnnaBridge 156:ff21514d8981 1071 * Alternate function AF1
AnnaBridge 156:ff21514d8981 1072 */
AnnaBridge 156:ff21514d8981 1073 #define GPIO_AF1_SPI1 ((uint8_t)0x01U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1074 #define GPIO_AF1_SPI2 ((uint8_t)0x01U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1075 #define GPIO_AF1_I2C1 ((uint8_t)0x01U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1076 #define GPIO_AF1_LCD ((uint8_t)0x01U) /* LCD Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1077 /**
AnnaBridge 156:ff21514d8981 1078 *
AnnaBridge 156:ff21514d8981 1079 */
AnnaBridge 156:ff21514d8981 1080
AnnaBridge 156:ff21514d8981 1081 /*
AnnaBridge 156:ff21514d8981 1082 * Alternate function AF2
AnnaBridge 156:ff21514d8981 1083 */
AnnaBridge 156:ff21514d8981 1084 #define GPIO_AF2_SPI2 ((uint8_t)0x02U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1085 #define GPIO_AF2_LPUART1 ((uint8_t)0x02U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1086 #define GPIO_AF2_USB ((uint8_t)0x02U) /* USB Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1087 #define GPIO_AF2_LPTIM1 ((uint8_t)0x02U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1088 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1089 #define GPIO_AF2_EVENTOUT ((uint8_t)0x02U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1090 #define GPIO_AF2_RTC ((uint8_t)0x02U) /* RTC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1091 /**
AnnaBridge 156:ff21514d8981 1092 *
AnnaBridge 156:ff21514d8981 1093 */
AnnaBridge 156:ff21514d8981 1094
AnnaBridge 156:ff21514d8981 1095 /*
AnnaBridge 156:ff21514d8981 1096 * Alternate function AF3
AnnaBridge 156:ff21514d8981 1097 */
AnnaBridge 156:ff21514d8981 1098 #define GPIO_AF3_I2C1 ((uint8_t)0x03U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1099 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1100 #define GPIO_AF3_EVENTOUT ((uint8_t)0x03U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1101 /**
AnnaBridge 156:ff21514d8981 1102 *
AnnaBridge 156:ff21514d8981 1103 */
AnnaBridge 156:ff21514d8981 1104
AnnaBridge 156:ff21514d8981 1105 /*
AnnaBridge 156:ff21514d8981 1106 * Alternate function AF4
AnnaBridge 156:ff21514d8981 1107 */
AnnaBridge 156:ff21514d8981 1108 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1109 #define GPIO_AF4_USART1 ((uint8_t)0x04U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1110 #define GPIO_AF4_USART2 ((uint8_t)0x04U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1111 #define GPIO_AF4_LPUART1 ((uint8_t)0x04U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1112 #define GPIO_AF4_TIM22 ((uint8_t)0x04U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1113 #define GPIO_AF4_EVENTOUT ((uint8_t)0x04U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1114 /**
AnnaBridge 156:ff21514d8981 1115 *
AnnaBridge 156:ff21514d8981 1116 */
AnnaBridge 156:ff21514d8981 1117
AnnaBridge 156:ff21514d8981 1118 /*
AnnaBridge 156:ff21514d8981 1119 * Alternate function AF5
AnnaBridge 156:ff21514d8981 1120 */
AnnaBridge 156:ff21514d8981 1121 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1122 #define GPIO_AF5_I2C2 ((uint8_t)0x05U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1123 #define GPIO_AF5_TIM2 ((uint8_t)0x05U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1124 #define GPIO_AF5_TIM21 ((uint8_t)0x05U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1125 #define GPIO_AF5_TIM22 ((uint8_t)0x05U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1126 /**
AnnaBridge 156:ff21514d8981 1127 *
AnnaBridge 156:ff21514d8981 1128 */
AnnaBridge 156:ff21514d8981 1129
AnnaBridge 156:ff21514d8981 1130 /*
AnnaBridge 156:ff21514d8981 1131 * Alternate function AF6
AnnaBridge 156:ff21514d8981 1132 */
AnnaBridge 156:ff21514d8981 1133 #define GPIO_AF6_I2C2 ((uint8_t)0x06U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1134 #define GPIO_AF6_TIM21 ((uint8_t)0x06U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1135 #define GPIO_AF6_EVENTOUT ((uint8_t)0x06U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1136 /**
AnnaBridge 156:ff21514d8981 1137 *
AnnaBridge 156:ff21514d8981 1138 */
AnnaBridge 156:ff21514d8981 1139
AnnaBridge 156:ff21514d8981 1140 /*
AnnaBridge 156:ff21514d8981 1141 * Alternate function AF7
AnnaBridge 156:ff21514d8981 1142 */
AnnaBridge 156:ff21514d8981 1143 #define GPIO_AF7_COMP1 ((uint8_t)0x07U) /* COMP1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1144 #define GPIO_AF7_COMP2 ((uint8_t)0x07U) /* COMP2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1145 /**
AnnaBridge 156:ff21514d8981 1146 *
AnnaBridge 156:ff21514d8981 1147 */
AnnaBridge 156:ff21514d8981 1148
AnnaBridge 156:ff21514d8981 1149 /**
AnnaBridge 156:ff21514d8981 1150 * @}
AnnaBridge 156:ff21514d8981 1151 */
AnnaBridge 156:ff21514d8981 1152
AnnaBridge 156:ff21514d8981 1153 /**
AnnaBridge 156:ff21514d8981 1154 * @}
AnnaBridge 156:ff21514d8981 1155 */
AnnaBridge 156:ff21514d8981 1156
AnnaBridge 156:ff21514d8981 1157 /** @defgroup GPIOEx_Private GPIOEx Private
AnnaBridge 156:ff21514d8981 1158 * @{
AnnaBridge 156:ff21514d8981 1159 */
AnnaBridge 156:ff21514d8981 1160 /**
AnnaBridge 156:ff21514d8981 1161 * @brief IS_GPIO_AF macro definition
AnnaBridge 156:ff21514d8981 1162 */
AnnaBridge 156:ff21514d8981 1163
AnnaBridge 156:ff21514d8981 1164 #define IS_GPIO_AF(__AF__) (((__AF__) == GPIO_AF0_SPI1) || ((__AF__) == GPIO_AF2_SPI2) || \
AnnaBridge 156:ff21514d8981 1165 ((__AF__) == GPIO_AF0_SPI2) || ((__AF__) == GPIO_AF2_LPUART1) || \
AnnaBridge 156:ff21514d8981 1166 ((__AF__) == GPIO_AF0_USART1) || ((__AF__) == GPIO_AF2_USB) || \
AnnaBridge 156:ff21514d8981 1167 ((__AF__) == GPIO_AF0_USART2) || ((__AF__) == GPIO_AF2_LPTIM1) || \
AnnaBridge 156:ff21514d8981 1168 ((__AF__) == GPIO_AF0_LPUART1) || ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1169 ((__AF__) == GPIO_AF0_USB) || ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 1170 ((__AF__) == GPIO_AF0_LPTIM1) || ((__AF__) == GPIO_AF2_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1171 ((__AF__) == GPIO_AF0_TSC) || ((__AF__) == GPIO_AF2_RTC) || \
AnnaBridge 156:ff21514d8981 1172 ((__AF__) == GPIO_AF3_I2C1) || ((__AF__) == GPIO_AF7_COMP2) || \
AnnaBridge 156:ff21514d8981 1173 ((__AF__) == GPIO_AF0_TIM22) || ((__AF__) == GPIO_AF3_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1174 ((__AF__) == GPIO_AF0_EVENTOUT) || ((__AF__) == GPIO_AF4_I2C1) || \
AnnaBridge 156:ff21514d8981 1175 ((__AF__) == GPIO_AF0_MCO) || ((__AF__) == GPIO_AF4_USART1) || \
AnnaBridge 156:ff21514d8981 1176 ((__AF__) == GPIO_AF0_SWDIO) || ((__AF__) == GPIO_AF0_SWCLK) || \
AnnaBridge 156:ff21514d8981 1177 ((__AF__) == GPIO_AF1_SPI1) || ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 1178 ((__AF__) == GPIO_AF1_SPI2) || ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 1179 ((__AF__) == GPIO_AF7_COMP2) || ((__AF__) == GPIO_AF4_TIM22) || \
AnnaBridge 156:ff21514d8981 1180 ((__AF__) == GPIO_AF1_I2C1) || ((__AF__) == GPIO_AF4_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1181 ((__AF__) == GPIO_AF1_LCD) || ((__AF__) == GPIO_AF5_SPI2) || \
AnnaBridge 156:ff21514d8981 1182 ((__AF__) == GPIO_AF5_I2C2) || ((__AF__) == GPIO_AF5_TIM2) || \
AnnaBridge 156:ff21514d8981 1183 ((__AF__) == GPIO_AF5_TIM21) || ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 1184 ((__AF__) == GPIO_AF6_I2C2) || ((__AF__) == GPIO_AF6_TIM21) || \
AnnaBridge 156:ff21514d8981 1185 ((__AF__) == GPIO_AF6_EVENTOUT) || ((__AF__) == GPIO_AF7_COMP1))
AnnaBridge 156:ff21514d8981 1186
AnnaBridge 156:ff21514d8981 1187
AnnaBridge 156:ff21514d8981 1188
AnnaBridge 156:ff21514d8981 1189 #define IS_GPIO_AF_AVAILABLE(__INSTANCE__,__AF__) \
AnnaBridge 156:ff21514d8981 1190 ((((__INSTANCE__) == GPIOA) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1191 ((__AF__) == GPIO_AF1_LCD) || \
AnnaBridge 156:ff21514d8981 1192 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1193 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 1194 ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 1195 ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 1196 ((__AF__) == GPIO_AF6_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1197 ((__AF__) == GPIO_AF7_COMP1))) || \
AnnaBridge 156:ff21514d8981 1198 (((__INSTANCE__) == GPIOB) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1199 ((__AF__) == GPIO_AF1_LCD) || \
AnnaBridge 156:ff21514d8981 1200 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1201 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 1202 ((__AF__) == GPIO_AF4_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1203 ((__AF__) == GPIO_AF5_I2C2) || \
AnnaBridge 156:ff21514d8981 1204 ((__AF__) == GPIO_AF6_TIM21))) || \
AnnaBridge 156:ff21514d8981 1205 (((__INSTANCE__) == GPIOC) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1206 ((__AF__) == GPIO_AF1_LCD) || \
AnnaBridge 156:ff21514d8981 1207 ((__AF__) == GPIO_AF2_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1208 ((__AF__) == GPIO_AF3_TSC))) || \
AnnaBridge 156:ff21514d8981 1209 (((__INSTANCE__) == GPIOD) && (((__AF__) == GPIO_AF0_LPUART1) || \
AnnaBridge 156:ff21514d8981 1210 ((__AF__) == GPIO_AF1_LCD))) || \
AnnaBridge 156:ff21514d8981 1211 (((__INSTANCE__) == GPIOH) && (((__AF__) == GPIO_AF0_USB))))
AnnaBridge 156:ff21514d8981 1212
AnnaBridge 156:ff21514d8981 1213 /**
AnnaBridge 156:ff21514d8981 1214 * @}
AnnaBridge 156:ff21514d8981 1215 */
AnnaBridge 156:ff21514d8981 1216
AnnaBridge 156:ff21514d8981 1217 #endif /* STM32L053xx || STM32L063xx */
AnnaBridge 156:ff21514d8981 1218 /*------------------------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1219
AnnaBridge 156:ff21514d8981 1220 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1221 /*------------------------- STM32L052xx/STM32L062xx---------------------------*/
AnnaBridge 156:ff21514d8981 1222 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1223 #if defined (STM32L052xx) || defined (STM32L062xx)
AnnaBridge 156:ff21514d8981 1224
AnnaBridge 156:ff21514d8981 1225 /* The table below gives an overview of the different alternate functions per port.
AnnaBridge 156:ff21514d8981 1226 * For more details refer yourself to the product data sheet.
AnnaBridge 156:ff21514d8981 1227 *
AnnaBridge 156:ff21514d8981 1228 */
AnnaBridge 156:ff21514d8981 1229 /* | AF0 | AF1 | AF2 | AF3 | AF4 | AF5 | AF6 | AF7 |
AnnaBridge 156:ff21514d8981 1230 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1231 * PA0 | | |TIM2_C1 |TSC |USART2 |TIM2_TR | |COMP1 |
AnnaBridge 156:ff21514d8981 1232 * PA1 |EVENTOUT| |TIM2_C2 |TSC |USART2 |TIM21_TR| | |
AnnaBridge 156:ff21514d8981 1233 * PA2 |TIM21_C1| |TIM2_C3 |TSC |USART2 | | |COMP2 |
AnnaBridge 156:ff21514d8981 1234 * PA3 |TIM21_C2| |TIM2_C4 |TSC |USART2 | | | |
AnnaBridge 156:ff21514d8981 1235 * PA4 |SPI1 | | |TSC |USART2 |TIM22_TR| | |
AnnaBridge 156:ff21514d8981 1236 * PA5 |SPI1 | |TIM2_TR |TSC | |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1237 * PA6 |SPI1 | | |TSC |LPUART |TIM22_C1|EVENTOUT|COMP1 |
AnnaBridge 156:ff21514d8981 1238 * PA7 |SPI1 | | |TSC | |TIM22_C2|EVENTOUT|COMP2 |
AnnaBridge 156:ff21514d8981 1239 * PA8 |MCO | |USB |EVENTOUT|USART1 | | | |
AnnaBridge 156:ff21514d8981 1240 * PA9 |MCO | | |TSC |USART1 | | | |
AnnaBridge 156:ff21514d8981 1241 * PA10| | | |TSC |USART1 | | | |
AnnaBridge 156:ff21514d8981 1242 * PA11|SPI1 | |EVENTOUT|TSC |USART1 | | |COMP1 |
AnnaBridge 156:ff21514d8981 1243 * PA12|SPI1 | |EVENTOUT|TSC |USART1 | | |COMP2 |
AnnaBridge 156:ff21514d8981 1244 * PA13|SWDIO | |USB | | | | | |
AnnaBridge 156:ff21514d8981 1245 * PA14|SWCLK | | | |USART2 | | | |
AnnaBridge 156:ff21514d8981 1246 * PA15|SPI1 | |TIM2_TR |EVENTOUT|USART2 |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1247 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1248 * PB0 |EVENTOUT| | |TSC | | | | |
AnnaBridge 156:ff21514d8981 1249 * PB1 | | | |TSC |LPUART1 | | | |
AnnaBridge 156:ff21514d8981 1250 * PB2 | | |LPTIM1_O|TSC | | | | |
AnnaBridge 156:ff21514d8981 1251 * PB3 |SPI1 | |TIM2_C2 |TSC |EVENTOUT| | | |
AnnaBridge 156:ff21514d8981 1252 * PB4 |SPI1 | |EVENTOUT|TSC |TIM22_C1| | | |
AnnaBridge 156:ff21514d8981 1253 * PB5 |SPI1 | |LPTIM1_I|I2C1 |TIM22_C2| | | |
AnnaBridge 156:ff21514d8981 1254 * PB6 |USART1 |I2C1 |LPTIM1_T|TSC | | | | |
AnnaBridge 156:ff21514d8981 1255 * PB7 |USART1 |I2C1 |LPTIM1_I|TSC | | | | |
AnnaBridge 156:ff21514d8981 1256 * PB8 | | | |TSC |I2C1 | | | |
AnnaBridge 156:ff21514d8981 1257 * PB9 | | |EVENTOUT| |I2C1 |SPI2 | | |
AnnaBridge 156:ff21514d8981 1258 * PB10| | |TIM2_C3 |TSC |LPUART1 |SPI2 |I2C2 | |
AnnaBridge 156:ff21514d8981 1259 * PB11|EVENTOUT| |TIM2_C4 |TSC |LPUART1 | |I2C2 | |
AnnaBridge 156:ff21514d8981 1260 * PB12|SPI2 | |LPUART1 |TSC | |I2C2 |EVENTOUT| |
AnnaBridge 156:ff21514d8981 1261 * PB13|SPI2 | | |TSC |LPUART1 |I2C2 |TIM21_C1| |
AnnaBridge 156:ff21514d8981 1262 * PB14|SPI2 | |RTC |TSC |LPUART1 |I2C2 |TIM21_C2| |
AnnaBridge 156:ff21514d8981 1263 * PB15|SPI2 | |RTC | | | | | |
AnnaBridge 156:ff21514d8981 1264 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1265 * PC0 |LPTIM1_I| |EVENTOUT|TSC | | | | |
AnnaBridge 156:ff21514d8981 1266 * PC1 |LPTIM1_O| |EVENTOUT|TSC | | | | |
AnnaBridge 156:ff21514d8981 1267 * PC2 |LPTIM1_I| |SPI2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 1268 * PC3 |LPTIM1_T| |SPI2 |TSC | | | | |
AnnaBridge 156:ff21514d8981 1269 * PC4 |EVENTOUT| |LPUART | | | | | |
AnnaBridge 156:ff21514d8981 1270 * PC5 | | |LPUART |TSC | | | | |
AnnaBridge 156:ff21514d8981 1271 * PC6 |TIM22_C1| | |TSC | | | | |
AnnaBridge 156:ff21514d8981 1272 * PC7 |TIM22_C2| | |TSC | | | | |
AnnaBridge 156:ff21514d8981 1273 * PC8 |TIM22_TR| | |TSC | | | | |
AnnaBridge 156:ff21514d8981 1274 * PC9 |TIM21_TR| |USB |TSC | | | | |
AnnaBridge 156:ff21514d8981 1275 * PC10|LPUART | | | | | | | |
AnnaBridge 156:ff21514d8981 1276 * PC11|LPUART | | | | | | | |
AnnaBridge 156:ff21514d8981 1277 * PC12| | | | | | | | |
AnnaBridge 156:ff21514d8981 1278 * PC13| | | | | | | | |
AnnaBridge 156:ff21514d8981 1279 * PC14| | | | | | | | |
AnnaBridge 156:ff21514d8981 1280 * PC15| | | | | | | | |
AnnaBridge 156:ff21514d8981 1281 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1282 * PD2 |LPUART | | | | | | | |
AnnaBridge 156:ff21514d8981 1283 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1284 * PH0 |USB | | | | | | | |
AnnaBridge 156:ff21514d8981 1285 * PH1 | | | | | | | | |
AnnaBridge 156:ff21514d8981 1286 * *
AnnaBridge 156:ff21514d8981 1287 */
AnnaBridge 156:ff21514d8981 1288
AnnaBridge 156:ff21514d8981 1289 /** @defgroup GPIOEx_Alternate_function_selection Alternate function selection
AnnaBridge 156:ff21514d8981 1290 * @{
AnnaBridge 156:ff21514d8981 1291 */
AnnaBridge 156:ff21514d8981 1292
AnnaBridge 156:ff21514d8981 1293 /*
AnnaBridge 156:ff21514d8981 1294 * Alternate function AF0
AnnaBridge 156:ff21514d8981 1295 */
AnnaBridge 156:ff21514d8981 1296 #define GPIO_AF0_SPI1 ((uint8_t)0x00U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1297 #define GPIO_AF0_SPI2 ((uint8_t)0x00U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1298 #define GPIO_AF0_USART1 ((uint8_t)0x00U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1299 #define GPIO_AF0_USART2 ((uint8_t)0x00U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1300 #define GPIO_AF0_LPUART1 ((uint8_t)0x00U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1301 #define GPIO_AF0_USB ((uint8_t)0x00U) /* USB Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1302 #define GPIO_AF0_LPTIM1 ((uint8_t)0x00U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1303 #define GPIO_AF0_TSC ((uint8_t)0x00U) /* TSC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1304 #define GPIO_AF0_TIM2 ((uint8_t)0x00U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1305 #define GPIO_AF0_TIM21 ((uint8_t)0x00U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1306 #define GPIO_AF0_TIM22 ((uint8_t)0x00U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1307 #define GPIO_AF0_EVENTOUT ((uint8_t)0x00U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1308 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1309 #define GPIO_AF0_SWDIO ((uint8_t)0x00U) /* SWDIO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1310 #define GPIO_AF0_SWCLK ((uint8_t)0x00U) /* SWCLK Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1311 /**
AnnaBridge 156:ff21514d8981 1312 *
AnnaBridge 156:ff21514d8981 1313 */
AnnaBridge 156:ff21514d8981 1314
AnnaBridge 156:ff21514d8981 1315 /*
AnnaBridge 156:ff21514d8981 1316 * Alternate function AF1
AnnaBridge 156:ff21514d8981 1317 */
AnnaBridge 156:ff21514d8981 1318 #define GPIO_AF1_SPI1 ((uint8_t)0x01U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1319 #define GPIO_AF1_SPI2 ((uint8_t)0x01U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1320 #define GPIO_AF1_I2C1 ((uint8_t)0x01U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1321 /**
AnnaBridge 156:ff21514d8981 1322 *
AnnaBridge 156:ff21514d8981 1323 */
AnnaBridge 156:ff21514d8981 1324
AnnaBridge 156:ff21514d8981 1325 /**
AnnaBridge 156:ff21514d8981 1326 * Alternate function AF2
AnnaBridge 156:ff21514d8981 1327 */
AnnaBridge 156:ff21514d8981 1328 #define GPIO_AF2_SPI2 ((uint8_t)0x02U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1329 #define GPIO_AF2_LPUART1 ((uint8_t)0x02U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1330 #define GPIO_AF2_USB ((uint8_t)0x02U) /* USB Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1331 #define GPIO_AF2_LPTIM1 ((uint8_t)0x02U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1332 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1333 #define GPIO_AF2_EVENTOUT ((uint8_t)0x02U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1334 #define GPIO_AF2_RTC ((uint8_t)0x02U) /* RTC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1335 /**
AnnaBridge 156:ff21514d8981 1336 *
AnnaBridge 156:ff21514d8981 1337 */
AnnaBridge 156:ff21514d8981 1338
AnnaBridge 156:ff21514d8981 1339 /*
AnnaBridge 156:ff21514d8981 1340 * Alternate function AF3
AnnaBridge 156:ff21514d8981 1341 */
AnnaBridge 156:ff21514d8981 1342 #define GPIO_AF3_I2C1 ((uint8_t)0x03U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1343 #define GPIO_AF3_TSC ((uint8_t)0x03U) /* TSC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1344 #define GPIO_AF3_EVENTOUT ((uint8_t)0x03U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1345 /**
AnnaBridge 156:ff21514d8981 1346 *
AnnaBridge 156:ff21514d8981 1347 */
AnnaBridge 156:ff21514d8981 1348
AnnaBridge 156:ff21514d8981 1349 /*
AnnaBridge 156:ff21514d8981 1350 * Alternate function AF4
AnnaBridge 156:ff21514d8981 1351 */
AnnaBridge 156:ff21514d8981 1352 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1353 #define GPIO_AF4_USART1 ((uint8_t)0x04U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1354 #define GPIO_AF4_USART2 ((uint8_t)0x04U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1355 #define GPIO_AF4_LPUART1 ((uint8_t)0x04U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1356 #define GPIO_AF4_TIM22 ((uint8_t)0x04U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1357 #define GPIO_AF4_EVENTOUT ((uint8_t)0x04U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1358 /**
AnnaBridge 156:ff21514d8981 1359 *
AnnaBridge 156:ff21514d8981 1360 */
AnnaBridge 156:ff21514d8981 1361
AnnaBridge 156:ff21514d8981 1362 /*
AnnaBridge 156:ff21514d8981 1363 * Alternate function AF5
AnnaBridge 156:ff21514d8981 1364 */
AnnaBridge 156:ff21514d8981 1365 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1366 #define GPIO_AF5_I2C2 ((uint8_t)0x05U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1367 #define GPIO_AF5_TIM2 ((uint8_t)0x05U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1368 #define GPIO_AF5_TIM21 ((uint8_t)0x05U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1369 #define GPIO_AF5_TIM22 ((uint8_t)0x05U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1370 /**
AnnaBridge 156:ff21514d8981 1371 *
AnnaBridge 156:ff21514d8981 1372 */
AnnaBridge 156:ff21514d8981 1373
AnnaBridge 156:ff21514d8981 1374 /*
AnnaBridge 156:ff21514d8981 1375 * Alternate function AF6
AnnaBridge 156:ff21514d8981 1376 */
AnnaBridge 156:ff21514d8981 1377 #define GPIO_AF6_I2C2 ((uint8_t)0x06U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1378 #define GPIO_AF6_TIM21 ((uint8_t)0x06U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1379 #define GPIO_AF6_EVENTOUT ((uint8_t)0x06U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1380 /**
AnnaBridge 156:ff21514d8981 1381 *
AnnaBridge 156:ff21514d8981 1382 */
AnnaBridge 156:ff21514d8981 1383
AnnaBridge 156:ff21514d8981 1384 /*
AnnaBridge 156:ff21514d8981 1385 * Alternate function AF7
AnnaBridge 156:ff21514d8981 1386 */
AnnaBridge 156:ff21514d8981 1387 #define GPIO_AF7_COMP1 ((uint8_t)0x07U) /* COMP1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1388 #define GPIO_AF7_COMP2 ((uint8_t)0x07U) /* COMP2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1389 /**
AnnaBridge 156:ff21514d8981 1390 *
AnnaBridge 156:ff21514d8981 1391 */
AnnaBridge 156:ff21514d8981 1392
AnnaBridge 156:ff21514d8981 1393 /**
AnnaBridge 156:ff21514d8981 1394 * @}
AnnaBridge 156:ff21514d8981 1395 */
AnnaBridge 156:ff21514d8981 1396
AnnaBridge 156:ff21514d8981 1397 /**
AnnaBridge 156:ff21514d8981 1398 * @}
AnnaBridge 156:ff21514d8981 1399 */
AnnaBridge 156:ff21514d8981 1400
AnnaBridge 156:ff21514d8981 1401 /** @defgroup GPIOEx_Private GPIOEx Private
AnnaBridge 156:ff21514d8981 1402 * @{
AnnaBridge 156:ff21514d8981 1403 */
AnnaBridge 156:ff21514d8981 1404 /**
AnnaBridge 156:ff21514d8981 1405 * @brief IS_GPIO_AF macro definition
AnnaBridge 156:ff21514d8981 1406 */
AnnaBridge 156:ff21514d8981 1407
AnnaBridge 156:ff21514d8981 1408 #define IS_GPIO_AF(__AF__) (((__AF__) == GPIO_AF0_SPI1) || ((__AF__) == GPIO_AF2_SPI2) || \
AnnaBridge 156:ff21514d8981 1409 ((__AF__) == GPIO_AF0_SPI2) || ((__AF__) == GPIO_AF2_LPUART1) || \
AnnaBridge 156:ff21514d8981 1410 ((__AF__) == GPIO_AF0_USART1) || ((__AF__) == GPIO_AF2_USB) || \
AnnaBridge 156:ff21514d8981 1411 ((__AF__) == GPIO_AF0_USART2) || ((__AF__) == GPIO_AF2_LPTIM1) || \
AnnaBridge 156:ff21514d8981 1412 ((__AF__) == GPIO_AF0_LPUART1) || ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1413 ((__AF__) == GPIO_AF0_USB) || ((__AF__) == GPIO_AF4_TIM22) || \
AnnaBridge 156:ff21514d8981 1414 ((__AF__) == GPIO_AF0_LPTIM1) || ((__AF__) == GPIO_AF2_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1415 ((__AF__) == GPIO_AF0_TSC) || ((__AF__) == GPIO_AF2_RTC) || \
AnnaBridge 156:ff21514d8981 1416 ((__AF__) == GPIO_AF0_TIM2) || ((__AF__) == GPIO_AF3_I2C1) || \
AnnaBridge 156:ff21514d8981 1417 ((__AF__) == GPIO_AF0_TIM21) || ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 1418 ((__AF__) == GPIO_AF0_TIM22) || ((__AF__) == GPIO_AF3_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1419 ((__AF__) == GPIO_AF0_EVENTOUT) || ((__AF__) == GPIO_AF4_I2C1) || \
AnnaBridge 156:ff21514d8981 1420 ((__AF__) == GPIO_AF0_MCO) || ((__AF__) == GPIO_AF4_USART1) || \
AnnaBridge 156:ff21514d8981 1421 ((__AF__) == GPIO_AF0_SWDIO) || ((__AF__) == GPIO_AF0_SWCLK) || \
AnnaBridge 156:ff21514d8981 1422 ((__AF__) == GPIO_AF1_SPI1) || ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 1423 ((__AF__) == GPIO_AF1_SPI2) || ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 1424 ((__AF__) == GPIO_AF1_I2C1) || ((__AF__) == GPIO_AF4_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1425 ((__AF__) == GPIO_AF6_EVENTOUT) || ((__AF__) == GPIO_AF5_SPI2) || \
AnnaBridge 156:ff21514d8981 1426 ((__AF__) == GPIO_AF5_I2C2) || ((__AF__) == GPIO_AF5_TIM2) || \
AnnaBridge 156:ff21514d8981 1427 ((__AF__) == GPIO_AF5_TIM21) || ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 1428 ((__AF__) == GPIO_AF6_I2C2) || ((__AF__) == GPIO_AF6_TIM21) || \
AnnaBridge 156:ff21514d8981 1429 ((__AF__) == GPIO_AF7_COMP2) || ((__AF__) == GPIO_AF7_COMP1))
AnnaBridge 156:ff21514d8981 1430
AnnaBridge 156:ff21514d8981 1431
AnnaBridge 156:ff21514d8981 1432 #define IS_GPIO_AF_AVAILABLE(__INSTANCE__,__AF__) \
AnnaBridge 156:ff21514d8981 1433 ((((__INSTANCE__) == GPIOA) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1434 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1435 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 1436 ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 1437 ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 1438 ((__AF__) == GPIO_AF6_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1439 ((__AF__) == GPIO_AF7_COMP1))) || \
AnnaBridge 156:ff21514d8981 1440 (((__INSTANCE__) == GPIOB) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1441 ((__AF__) == GPIO_AF1_I2C1) || \
AnnaBridge 156:ff21514d8981 1442 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1443 ((__AF__) == GPIO_AF3_TSC) || \
AnnaBridge 156:ff21514d8981 1444 ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 1445 ((__AF__) == GPIO_AF5_I2C2) || \
AnnaBridge 156:ff21514d8981 1446 ((__AF__) == GPIO_AF6_EVENTOUT))) || \
AnnaBridge 156:ff21514d8981 1447 (((__INSTANCE__) == GPIOC) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1448 ((__AF__) == GPIO_AF2_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1449 ((__AF__) == GPIO_AF3_TSC))) || \
AnnaBridge 156:ff21514d8981 1450 (((__INSTANCE__) == GPIOD) && (((__AF__) == GPIO_AF0_LPUART1))) || \
AnnaBridge 156:ff21514d8981 1451 (((__INSTANCE__) == GPIOH) && (((__AF__) == GPIO_AF0_USB))))
AnnaBridge 156:ff21514d8981 1452
AnnaBridge 156:ff21514d8981 1453 /**
AnnaBridge 156:ff21514d8981 1454 * @}
AnnaBridge 156:ff21514d8981 1455 */
AnnaBridge 156:ff21514d8981 1456 #endif /* STM32L052xx || STM32L062xx */
AnnaBridge 156:ff21514d8981 1457 /*------------------------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1458
AnnaBridge 156:ff21514d8981 1459 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1460 /*------------------------- STM32L051xx/STM32L061xx---------------------------*/
AnnaBridge 156:ff21514d8981 1461 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1462 #if defined (STM32L051xx)|| defined (STM32L061xx)
AnnaBridge 156:ff21514d8981 1463 /* The table below gives an overview of the different alternate functions per port.
AnnaBridge 156:ff21514d8981 1464 * For more details refer yourself to the product data sheet.
AnnaBridge 156:ff21514d8981 1465 *
AnnaBridge 156:ff21514d8981 1466 */
AnnaBridge 156:ff21514d8981 1467 /* | AF0 | AF1 | AF2 | AF3 | AF4 | AF5 | AF6 | AF7 |
AnnaBridge 156:ff21514d8981 1468 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1469 * PA0 | | |TIM2_C1 | |USART2 |TIM2_TR | |COMP1 |
AnnaBridge 156:ff21514d8981 1470 * PA1 |EVENTOUT| |TIM2_C2 | |USART2 |TIM21_TR| | |
AnnaBridge 156:ff21514d8981 1471 * PA2 |TIM21_C1| |TIM2_C3 | |USART2 | | |COMP2 |
AnnaBridge 156:ff21514d8981 1472 * PA3 |TIM21_C2| |TIM2_C4 | |USART2 | | | |
AnnaBridge 156:ff21514d8981 1473 * PA4 |SPI1 | | | |USART2 |TIM22_TR| | |
AnnaBridge 156:ff21514d8981 1474 * PA5 |SPI1 | |TIM2_TR | | |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1475 * PA6 |SPI1 | | | |LPUART |TIM22_C1|EVENTOUT|COMP1 |
AnnaBridge 156:ff21514d8981 1476 * PA7 |SPI1 | | | | |TIM22_C2|EVENTOUT|COMP2 |
AnnaBridge 156:ff21514d8981 1477 * PA8 |MCO | | |EVENTOUT|USART1 | | | |
AnnaBridge 156:ff21514d8981 1478 * PA9 |MCO | | | |USART1 | | | |
AnnaBridge 156:ff21514d8981 1479 * PA10| | | | |USART1 | | | |
AnnaBridge 156:ff21514d8981 1480 * PA11|SPI1 | |EVENTOUT| |USART1 | | |COMP1 |
AnnaBridge 156:ff21514d8981 1481 * PA12|SPI1 | |EVENTOUT| |USART1 | | |COMP2 |
AnnaBridge 156:ff21514d8981 1482 * PA13|SWDIO | | | | | | | |
AnnaBridge 156:ff21514d8981 1483 * PA14|SWCLK | | | |USART2 | | | |
AnnaBridge 156:ff21514d8981 1484 * PA15|SPI1 | |TIM2_TR |EVENTOUT|USART2 |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1485 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1486 * PB0 |EVENTOUT| | | | | | | |
AnnaBridge 156:ff21514d8981 1487 * PB1 | | | | |LPUART1 | | | |
AnnaBridge 156:ff21514d8981 1488 * PB2 | | |LPTIM1_O| | | | | |
AnnaBridge 156:ff21514d8981 1489 * PB3 |SPI1 | |TIM2_C2 | |EVENTOUT| | | |
AnnaBridge 156:ff21514d8981 1490 * PB4 |SPI1 | |EVENTOUT| |TIM22_C1| | | |
AnnaBridge 156:ff21514d8981 1491 * PB5 |SPI1 | |LPTIM1_I|I2C1 |TIM22_C2| | | |
AnnaBridge 156:ff21514d8981 1492 * PB6 |USART1 |I2C1 |LPTIM1_T| | | | | |
AnnaBridge 156:ff21514d8981 1493 * PB7 |USART1 |I2C1 |LPTIM1_I| | | | | |
AnnaBridge 156:ff21514d8981 1494 * PB8 | | | | |I2C1 | | | |
AnnaBridge 156:ff21514d8981 1495 * PB9 | | |EVENTOUT| |I2C1 |SPI2 | | |
AnnaBridge 156:ff21514d8981 1496 * PB10| | |TIM2_C3 | |LPUART1 |SPI2 |I2C2 | |
AnnaBridge 156:ff21514d8981 1497 * PB11|EVENTOUT| |TIM2_C4 | |LPUART1 | |I2C2 | |
AnnaBridge 156:ff21514d8981 1498 * PB12|SPI2 | |LPUART1 | | |I2C2 |EVENTOUT| |
AnnaBridge 156:ff21514d8981 1499 * PB13|SPI2 | | | |LPUART1 |I2C2 |TIM21_C1| |
AnnaBridge 156:ff21514d8981 1500 * PB14|SPI2 | |RTC | |LPUART1 |I2C2 |TIM21_C2| |
AnnaBridge 156:ff21514d8981 1501 * PB15|SPI2 | |RTC | | | | | |
AnnaBridge 156:ff21514d8981 1502 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1503 * PC0 |LPTIM1_I| |EVENTOUT| | | | | |
AnnaBridge 156:ff21514d8981 1504 * PC1 |LPTIM1_O| |EVENTOUT| | | | | |
AnnaBridge 156:ff21514d8981 1505 * PC2 |LPTIM1_I| |SPI2 | | | | | |
AnnaBridge 156:ff21514d8981 1506 * PC3 |LPTIM1_T| |SPI2 | | | | | |
AnnaBridge 156:ff21514d8981 1507 * PC4 |EVENTOUT| |LPUART | | | | | |
AnnaBridge 156:ff21514d8981 1508 * PC5 | | |LPUART | | | | | |
AnnaBridge 156:ff21514d8981 1509 * PC6 |TIM22_C1| | | | | | | |
AnnaBridge 156:ff21514d8981 1510 * PC7 |TIM22_C2| | | | | | | |
AnnaBridge 156:ff21514d8981 1511 * PC8 |TIM22_TR| | | | | | | |
AnnaBridge 156:ff21514d8981 1512 * PC9 |TIM21_TR| | | | | | | |
AnnaBridge 156:ff21514d8981 1513 * PC10|LPUART | | | | | | | |
AnnaBridge 156:ff21514d8981 1514 * PC11|LPUART | | | | | | | |
AnnaBridge 156:ff21514d8981 1515 * PC12| | | | | | | | |
AnnaBridge 156:ff21514d8981 1516 * PC13| | | | | | | | |
AnnaBridge 156:ff21514d8981 1517 * PC14| | | | | | | | |
AnnaBridge 156:ff21514d8981 1518 * PC15| | | | | | | | |
AnnaBridge 156:ff21514d8981 1519 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1520 * PD2 |LPUART | | | | | | | |
AnnaBridge 156:ff21514d8981 1521 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1522 * PH0 | | | | | | | | |
AnnaBridge 156:ff21514d8981 1523 * PH1 | | | | | | | | |
AnnaBridge 156:ff21514d8981 1524 * *
AnnaBridge 156:ff21514d8981 1525 */
AnnaBridge 156:ff21514d8981 1526
AnnaBridge 156:ff21514d8981 1527 /** @defgroup GPIOEx_Alternate_function_selection Alternate function selection
AnnaBridge 156:ff21514d8981 1528 * @{
AnnaBridge 156:ff21514d8981 1529 */
AnnaBridge 156:ff21514d8981 1530
AnnaBridge 156:ff21514d8981 1531 /*
AnnaBridge 156:ff21514d8981 1532 * Alternate function AF0
AnnaBridge 156:ff21514d8981 1533 */
AnnaBridge 156:ff21514d8981 1534 #define GPIO_AF0_SPI1 ((uint8_t)0x00U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1535 #define GPIO_AF0_SPI2 ((uint8_t)0x00U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1536 #define GPIO_AF0_USART1 ((uint8_t)0x00U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1537 #define GPIO_AF0_USART2 ((uint8_t)0x00U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1538 #define GPIO_AF0_LPUART1 ((uint8_t)0x00U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1539 #define GPIO_AF0_LPTIM1 ((uint8_t)0x00U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1540 #define GPIO_AF0_TIM2 ((uint8_t)0x00U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1541 #define GPIO_AF0_TIM21 ((uint8_t)0x00U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1542 #define GPIO_AF0_TIM22 ((uint8_t)0x00U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1543 #define GPIO_AF0_EVENTOUT ((uint8_t)0x00U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1544 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1545 #define GPIO_AF0_SWDIO ((uint8_t)0x00U) /* SWDIO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1546 #define GPIO_AF0_SWCLK ((uint8_t)0x00U) /* SWCLK Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1547 /**
AnnaBridge 156:ff21514d8981 1548 *
AnnaBridge 156:ff21514d8981 1549 */
AnnaBridge 156:ff21514d8981 1550
AnnaBridge 156:ff21514d8981 1551 /*
AnnaBridge 156:ff21514d8981 1552 * Alternate function AF1
AnnaBridge 156:ff21514d8981 1553 */
AnnaBridge 156:ff21514d8981 1554 #define GPIO_AF1_SPI1 ((uint8_t)0x01U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1555 #define GPIO_AF1_SPI2 ((uint8_t)0x01U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1556 #define GPIO_AF1_I2C1 ((uint8_t)0x01U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1557 /**
AnnaBridge 156:ff21514d8981 1558 *
AnnaBridge 156:ff21514d8981 1559 */
AnnaBridge 156:ff21514d8981 1560
AnnaBridge 156:ff21514d8981 1561 /*
AnnaBridge 156:ff21514d8981 1562 * Alternate function AF2
AnnaBridge 156:ff21514d8981 1563 */
AnnaBridge 156:ff21514d8981 1564 #define GPIO_AF2_SPI2 ((uint8_t)0x02U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1565 #define GPIO_AF2_LPUART1 ((uint8_t)0x02U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1566 #define GPIO_AF2_USB ((uint8_t)0x02U) /* USB Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1567 #define GPIO_AF2_LPTIM1 ((uint8_t)0x02U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1568 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1569 #define GPIO_AF2_EVENTOUT ((uint8_t)0x02U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1570 #define GPIO_AF2_RTC ((uint8_t)0x02U) /* RTC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1571 /**
AnnaBridge 156:ff21514d8981 1572 *
AnnaBridge 156:ff21514d8981 1573 */
AnnaBridge 156:ff21514d8981 1574
AnnaBridge 156:ff21514d8981 1575 /*
AnnaBridge 156:ff21514d8981 1576 * Alternate function AF3
AnnaBridge 156:ff21514d8981 1577 */
AnnaBridge 156:ff21514d8981 1578 #define GPIO_AF3_I2C1 ((uint8_t)0x03U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1579 #define GPIO_AF3_EVENTOUT ((uint8_t)0x03U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1580 /**
AnnaBridge 156:ff21514d8981 1581 *
AnnaBridge 156:ff21514d8981 1582 */
AnnaBridge 156:ff21514d8981 1583
AnnaBridge 156:ff21514d8981 1584 /*
AnnaBridge 156:ff21514d8981 1585 * Alternate function AF4
AnnaBridge 156:ff21514d8981 1586 */
AnnaBridge 156:ff21514d8981 1587 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1588 #define GPIO_AF4_USART1 ((uint8_t)0x04U) /* USART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1589 #define GPIO_AF4_USART2 ((uint8_t)0x04U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1590 #define GPIO_AF4_LPUART1 ((uint8_t)0x04U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1591 #define GPIO_AF4_TIM22 ((uint8_t)0x04U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1592 #define GPIO_AF4_EVENTOUT ((uint8_t)0x04U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1593 /**
AnnaBridge 156:ff21514d8981 1594 *
AnnaBridge 156:ff21514d8981 1595 */
AnnaBridge 156:ff21514d8981 1596
AnnaBridge 156:ff21514d8981 1597 /*
AnnaBridge 156:ff21514d8981 1598 * Alternate function AF5
AnnaBridge 156:ff21514d8981 1599 */
AnnaBridge 156:ff21514d8981 1600 #define GPIO_AF5_SPI2 ((uint8_t)0x05U) /* SPI2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1601 #define GPIO_AF5_I2C2 ((uint8_t)0x05U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1602 #define GPIO_AF5_TIM2 ((uint8_t)0x05U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1603 #define GPIO_AF5_TIM21 ((uint8_t)0x05U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1604 #define GPIO_AF5_TIM22 ((uint8_t)0x05U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1605 /**
AnnaBridge 156:ff21514d8981 1606 *
AnnaBridge 156:ff21514d8981 1607 */
AnnaBridge 156:ff21514d8981 1608
AnnaBridge 156:ff21514d8981 1609 /*
AnnaBridge 156:ff21514d8981 1610 * Alternate function AF6
AnnaBridge 156:ff21514d8981 1611 */
AnnaBridge 156:ff21514d8981 1612 #define GPIO_AF6_I2C2 ((uint8_t)0x06U) /* I2C2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1613 #define GPIO_AF6_TIM21 ((uint8_t)0x06U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1614 #define GPIO_AF6_EVENTOUT ((uint8_t)0x06U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1615 /**
AnnaBridge 156:ff21514d8981 1616 *
AnnaBridge 156:ff21514d8981 1617 */
AnnaBridge 156:ff21514d8981 1618
AnnaBridge 156:ff21514d8981 1619 /*
AnnaBridge 156:ff21514d8981 1620 * Alternate function AF7
AnnaBridge 156:ff21514d8981 1621 */
AnnaBridge 156:ff21514d8981 1622 #define GPIO_AF7_COMP1 ((uint8_t)0x07U) /* COMP1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1623 #define GPIO_AF7_COMP2 ((uint8_t)0x07U) /* COMP2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1624 /**
AnnaBridge 156:ff21514d8981 1625 *
AnnaBridge 156:ff21514d8981 1626 */
AnnaBridge 156:ff21514d8981 1627
AnnaBridge 156:ff21514d8981 1628 /**
AnnaBridge 156:ff21514d8981 1629 * @}
AnnaBridge 156:ff21514d8981 1630 */
AnnaBridge 156:ff21514d8981 1631
AnnaBridge 156:ff21514d8981 1632 /**
AnnaBridge 156:ff21514d8981 1633 * @}
AnnaBridge 156:ff21514d8981 1634 */
AnnaBridge 156:ff21514d8981 1635
AnnaBridge 156:ff21514d8981 1636 /** @defgroup GPIOEx_Private GPIOEx Private
AnnaBridge 156:ff21514d8981 1637 * @{
AnnaBridge 156:ff21514d8981 1638 */
AnnaBridge 156:ff21514d8981 1639
AnnaBridge 156:ff21514d8981 1640 /**
AnnaBridge 156:ff21514d8981 1641 * @brief IS_GPIO_AF macro definition
AnnaBridge 156:ff21514d8981 1642 */
AnnaBridge 156:ff21514d8981 1643 #define IS_GPIO_AF(__AF__) (((__AF__) == GPIO_AF0_SPI1) || ((__AF__) == GPIO_AF2_SPI2) || \
AnnaBridge 156:ff21514d8981 1644 ((__AF__) == GPIO_AF0_SPI2) || ((__AF__) == GPIO_AF2_LPUART1) || \
AnnaBridge 156:ff21514d8981 1645 ((__AF__) == GPIO_AF0_USART1) || ((__AF__) == GPIO_AF7_COMP1) || \
AnnaBridge 156:ff21514d8981 1646 ((__AF__) == GPIO_AF0_USART2) || ((__AF__) == GPIO_AF2_LPTIM1) || \
AnnaBridge 156:ff21514d8981 1647 ((__AF__) == GPIO_AF0_LPUART1) || ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1648 ((__AF__) == GPIO_AF0_LPTIM1) || ((__AF__) == GPIO_AF2_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1649 ((__AF__) == GPIO_AF2_RTC) || ((__AF__) == GPIO_AF4_TIM22) || \
AnnaBridge 156:ff21514d8981 1650 ((__AF__) == GPIO_AF0_TIM2) || ((__AF__) == GPIO_AF3_I2C1) || \
AnnaBridge 156:ff21514d8981 1651 ((__AF__) == GPIO_AF0_TIM21) || ((__AF__) == GPIO_AF7_COMP2) || \
AnnaBridge 156:ff21514d8981 1652 ((__AF__) == GPIO_AF0_TIM22) || ((__AF__) == GPIO_AF3_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1653 ((__AF__) == GPIO_AF0_EVENTOUT) || ((__AF__) == GPIO_AF4_I2C1) || \
AnnaBridge 156:ff21514d8981 1654 ((__AF__) == GPIO_AF0_MCO) || ((__AF__) == GPIO_AF4_USART1) || \
AnnaBridge 156:ff21514d8981 1655 ((__AF__) == GPIO_AF0_SWDIO) || ((__AF__) == GPIO_AF0_SWCLK) || \
AnnaBridge 156:ff21514d8981 1656 ((__AF__) == GPIO_AF1_SPI1) || ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 1657 ((__AF__) == GPIO_AF1_SPI2) || ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 1658 ((__AF__) == GPIO_AF1_I2C1) || ((__AF__) == GPIO_AF4_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1659 ((__AF__) == GPIO_AF6_EVENTOUT) || ((__AF__) == GPIO_AF5_SPI2) || \
AnnaBridge 156:ff21514d8981 1660 ((__AF__) == GPIO_AF5_I2C2) || ((__AF__) == GPIO_AF5_TIM2) || \
AnnaBridge 156:ff21514d8981 1661 ((__AF__) == GPIO_AF5_TIM21) || ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 1662 ((__AF__) == GPIO_AF6_I2C2) || ((__AF__) == GPIO_AF6_TIM21))
AnnaBridge 156:ff21514d8981 1663
AnnaBridge 156:ff21514d8981 1664
AnnaBridge 156:ff21514d8981 1665
AnnaBridge 156:ff21514d8981 1666 #define IS_GPIO_AF_AVAILABLE(__INSTANCE__,__AF__) \
AnnaBridge 156:ff21514d8981 1667 ((((__INSTANCE__) == GPIOA) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1668 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1669 ((__AF__) == GPIO_AF3_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1670 ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 1671 ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 1672 ((__AF__) == GPIO_AF6_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1673 ((__AF__) == GPIO_AF7_COMP2))) || \
AnnaBridge 156:ff21514d8981 1674 (((__INSTANCE__) == GPIOB) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1675 ((__AF__) == GPIO_AF1_I2C1) || \
AnnaBridge 156:ff21514d8981 1676 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1677 ((__AF__) == GPIO_AF3_I2C1) || \
AnnaBridge 156:ff21514d8981 1678 ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 1679 ((__AF__) == GPIO_AF5_I2C2) || \
AnnaBridge 156:ff21514d8981 1680 ((__AF__) == GPIO_AF6_TIM21))) || \
AnnaBridge 156:ff21514d8981 1681 (((__INSTANCE__) == GPIOC) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1682 ((__AF__) == GPIO_AF2_LPUART1))) || \
AnnaBridge 156:ff21514d8981 1683 (((__INSTANCE__) == GPIOD) && (((__AF__) == GPIO_AF0_LPUART1))))
AnnaBridge 156:ff21514d8981 1684
AnnaBridge 156:ff21514d8981 1685 /**
AnnaBridge 156:ff21514d8981 1686 * @}
AnnaBridge 156:ff21514d8981 1687 */
AnnaBridge 156:ff21514d8981 1688 #endif /* STM32L051xx/STM32L061xx*/
AnnaBridge 156:ff21514d8981 1689 /*------------------------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1690
AnnaBridge 156:ff21514d8981 1691 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1692 /*------------------------- STM32L031xx/STM32L041xx---------------------------*/
AnnaBridge 156:ff21514d8981 1693 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1694 #if defined (STM32L031xx)|| defined (STM32L041xx)
AnnaBridge 156:ff21514d8981 1695 /* The table below gives an overview of the different alternate functions per port.
AnnaBridge 156:ff21514d8981 1696 * For more details refer yourself to the product data sheet.
AnnaBridge 156:ff21514d8981 1697 *
AnnaBridge 156:ff21514d8981 1698 */
AnnaBridge 156:ff21514d8981 1699 /* | AF0 | AF1 | AF2 | AF3 | AF4 | AF5 | AF6 | AF7 |
AnnaBridge 156:ff21514d8981 1700 *______________________________________________________________________________
AnnaBridge 156:ff21514d8981 1701 * PA0 | |LPTIM1 |TIM2_C1 | |USART2 |TIM2_TR | |COMP1 |
AnnaBridge 156:ff21514d8981 1702 * PA1 |EVENTOUT|LPTIM1 |TIM2_C2 |I2C1 |USART2 |TIM21_TR| | |
AnnaBridge 156:ff21514d8981 1703 * PA2 |TIM21_C1| |TIM2_C3 | |USART2 | |LPUART1 |COMP2 |
AnnaBridge 156:ff21514d8981 1704 * PA3 |TIM21_C2| |TIM2_C4 | |USART2 | |LPUART1 | |
AnnaBridge 156:ff21514d8981 1705 * PA4 |SPI1 |LPTIM1 | | |USART2 |TIM22_TR| | |
AnnaBridge 156:ff21514d8981 1706 * PA5 |SPI1 |LPTIM1 |TIM2_TR | | |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1707 * PA6 |SPI1 |LPTIM1 | | |LPUART |TIM22_C1|EVENTOUT|COMP1 |
AnnaBridge 156:ff21514d8981 1708 * PA7 |SPI1 |LPTIM1 | | |USART2 |TIM22_C2|EVENTOUT|COMP2 |
AnnaBridge 156:ff21514d8981 1709 * PA8 |MCO | |LPTIM1 |EVENTOUT|USART2 |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1710 * PA9 |MCO |I2C1 | | |USART2 |TIM22_C1| | |
AnnaBridge 156:ff21514d8981 1711 * PA10| |I2C1 | | |USART2 |TIM22_C2| | |
AnnaBridge 156:ff21514d8981 1712 * PA11|SPI1 | |EVENTOUT| |USART2 |TIM21_C2| |COMP1 |
AnnaBridge 156:ff21514d8981 1713 * PA12|SPI1 | |EVENTOUT| |USART2 | | |COMP2 |
AnnaBridge 156:ff21514d8981 1714 * PA13|SWDIO |LPTIM1 | | | | |LPUART1 | |
AnnaBridge 156:ff21514d8981 1715 * PA14|SWCLK |LPTIM1 | |I2C1 |USART2 | |LPUART1 | |
AnnaBridge 156:ff21514d8981 1716 * PA15|SPI1 | |TIM2_TR |EVENTOUT|USART2 |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1717 *_____________________________________________________________________________|
AnnaBridge 156:ff21514d8981 1718 * PB0 |EVENTOUT|SPI1 | | |USART2 |TIM2_C3 | | |
AnnaBridge 156:ff21514d8981 1719 * PB1 |USART2 |SPI1 | | |LPUART1 |TIM2_C4 | | |
AnnaBridge 156:ff21514d8981 1720 * PB2 | | |LPTIM1_O| | | | | |
AnnaBridge 156:ff21514d8981 1721 * PB3 |SPI1 | |TIM2_C2 | |EVENTOUT| | | |
AnnaBridge 156:ff21514d8981 1722 * PB4 |SPI1 | |EVENTOUT| |TIM22_C1| | | |
AnnaBridge 156:ff21514d8981 1723 * PB5 |SPI1 | |LPTIM1_I|I2C1 |TIM22_C2| | | |
AnnaBridge 156:ff21514d8981 1724 * PB6 |USART2 |I2C1 |LPTIM1_T| | |TIM21_C1| | |
AnnaBridge 156:ff21514d8981 1725 * PB7 |USART2 |I2C1 |LPTIM1_I| | | | | |
AnnaBridge 156:ff21514d8981 1726 * PB8 | | | | |I2C1 | | | |
AnnaBridge 156:ff21514d8981 1727 * PB9 | | |EVENTOUT| |I2C1 | | | |
AnnaBridge 156:ff21514d8981 1728 * PB10| | |TIM2_C3 | | | |LPUART1 | |
AnnaBridge 156:ff21514d8981 1729 * PB11|EVENTOUT| |TIM2_C4 | | | |LPUART1 | |
AnnaBridge 156:ff21514d8981 1730 * PB12|SPI2 | | | | | |EVENTOUT| |
AnnaBridge 156:ff21514d8981 1731 * PB13|SPI2 | |MCO | | |TIM21_C1|LPUART1 | |
AnnaBridge 156:ff21514d8981 1732 * PB14|SPI2 | |RTC | | |TIM21_C2|LPUART1 | |
AnnaBridge 156:ff21514d8981 1733 * PB15|SPI2 | |RTC | | | | | |
AnnaBridge 156:ff21514d8981 1734 *_____________________________________________________________________________|
AnnaBridge 156:ff21514d8981 1735 * PC0 |LPTIM1_I| |EVENTOUT| | | |LPUART1 | |
AnnaBridge 156:ff21514d8981 1736 * PC13| | | | | | | | |
AnnaBridge 156:ff21514d8981 1737 * PC14| | | | | | | | |
AnnaBridge 156:ff21514d8981 1738 * PC15| | | | | | | | |
AnnaBridge 156:ff21514d8981 1739 *_____________________________________________________________________________|
AnnaBridge 156:ff21514d8981 1740 * PH0 | | | | | | | | |
AnnaBridge 156:ff21514d8981 1741 * PH1 | | | | | | | | |
AnnaBridge 156:ff21514d8981 1742 *_____________________________________________________________________________|
AnnaBridge 156:ff21514d8981 1743 */
AnnaBridge 156:ff21514d8981 1744
AnnaBridge 156:ff21514d8981 1745 /** @defgroup GPIOEx_Alternate_function_selection Alternate function selection
AnnaBridge 156:ff21514d8981 1746 * @{
AnnaBridge 156:ff21514d8981 1747 */
AnnaBridge 156:ff21514d8981 1748
AnnaBridge 156:ff21514d8981 1749 /*
AnnaBridge 156:ff21514d8981 1750 * Alternate function AF0
AnnaBridge 156:ff21514d8981 1751 */
AnnaBridge 156:ff21514d8981 1752 #define GPIO_AF0_EVENTOUT ((uint8_t)0x00U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1753 #define GPIO_AF0_TIM21 ((uint8_t)0x00U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1754 #define GPIO_AF0_SPI1 ((uint8_t)0x00U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1755 #define GPIO_AF0_USART2 ((uint8_t)0x00U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1756 #define GPIO_AF0_LPTIM1 ((uint8_t)0x00U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1757 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1758 #define GPIO_AF0_SWDIO ((uint8_t)0x00U) /* SWDIO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1759 #define GPIO_AF0_SWCLK ((uint8_t)0x00U) /* SWCLK Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1760 /**
AnnaBridge 156:ff21514d8981 1761 *
AnnaBridge 156:ff21514d8981 1762 */
AnnaBridge 156:ff21514d8981 1763
AnnaBridge 156:ff21514d8981 1764 /*
AnnaBridge 156:ff21514d8981 1765 * Alternate function AF1
AnnaBridge 156:ff21514d8981 1766 */
AnnaBridge 156:ff21514d8981 1767 #define GPIO_AF1_SPI1 ((uint8_t)0x01U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1768 #define GPIO_AF1_I2C1 ((uint8_t)0x01U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1769 #define GPIO_AF1_LPTIM1 ((uint8_t)0x01U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1770 /**
AnnaBridge 156:ff21514d8981 1771 *
AnnaBridge 156:ff21514d8981 1772 */
AnnaBridge 156:ff21514d8981 1773
AnnaBridge 156:ff21514d8981 1774 /*
AnnaBridge 156:ff21514d8981 1775 * Alternate function AF2
AnnaBridge 156:ff21514d8981 1776 */
AnnaBridge 156:ff21514d8981 1777 #define GPIO_AF2_LPTIM1 ((uint8_t)0x02U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1778 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1779 #define GPIO_AF2_MCO ((uint8_t)0x02U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1780 #define GPIO_AF2_EVENTOUT ((uint8_t)0x02U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1781 #define GPIO_AF2_RTC ((uint8_t)0x02U) /* RTC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1782 /**
AnnaBridge 156:ff21514d8981 1783 *
AnnaBridge 156:ff21514d8981 1784 */
AnnaBridge 156:ff21514d8981 1785
AnnaBridge 156:ff21514d8981 1786 /*
AnnaBridge 156:ff21514d8981 1787 * Alternate function AF3
AnnaBridge 156:ff21514d8981 1788 */
AnnaBridge 156:ff21514d8981 1789 #define GPIO_AF3_I2C1 ((uint8_t)0x03U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1790 #define GPIO_AF3_EVENTOUT ((uint8_t)0x03U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1791 /**
AnnaBridge 156:ff21514d8981 1792 *
AnnaBridge 156:ff21514d8981 1793 */
AnnaBridge 156:ff21514d8981 1794
AnnaBridge 156:ff21514d8981 1795 /*
AnnaBridge 156:ff21514d8981 1796 * Alternate function AF4
AnnaBridge 156:ff21514d8981 1797 */
AnnaBridge 156:ff21514d8981 1798 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1799 #define GPIO_AF4_USART2 ((uint8_t)0x04U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1800 #define GPIO_AF4_LPUART1 ((uint8_t)0x04U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1801 #define GPIO_AF4_TIM22 ((uint8_t)0x04U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1802 #define GPIO_AF4_EVENTOUT ((uint8_t)0x04U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1803 /**
AnnaBridge 156:ff21514d8981 1804 *
AnnaBridge 156:ff21514d8981 1805 */
AnnaBridge 156:ff21514d8981 1806
AnnaBridge 156:ff21514d8981 1807 /*
AnnaBridge 156:ff21514d8981 1808 * Alternate function AF5
AnnaBridge 156:ff21514d8981 1809 */
AnnaBridge 156:ff21514d8981 1810 #define GPIO_AF5_TIM2 ((uint8_t)0x05U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1811 #define GPIO_AF5_TIM21 ((uint8_t)0x05U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1812 #define GPIO_AF5_TIM22 ((uint8_t)0x05U) /* TIM22 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1813 /**
AnnaBridge 156:ff21514d8981 1814 *
AnnaBridge 156:ff21514d8981 1815 */
AnnaBridge 156:ff21514d8981 1816
AnnaBridge 156:ff21514d8981 1817 /*
AnnaBridge 156:ff21514d8981 1818 * Alternate function AF6
AnnaBridge 156:ff21514d8981 1819 */
AnnaBridge 156:ff21514d8981 1820 #define GPIO_AF6_LPUART1 ((uint8_t)0x06U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1821 #define GPIO_AF6_EVENTOUT ((uint8_t)0x06U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1822 /**
AnnaBridge 156:ff21514d8981 1823 *
AnnaBridge 156:ff21514d8981 1824 */
AnnaBridge 156:ff21514d8981 1825
AnnaBridge 156:ff21514d8981 1826 /*
AnnaBridge 156:ff21514d8981 1827 * Alternate function AF7
AnnaBridge 156:ff21514d8981 1828 */
AnnaBridge 156:ff21514d8981 1829 #define GPIO_AF7_COMP1 ((uint8_t)0x07U) /* COMP1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1830 #define GPIO_AF7_COMP2 ((uint8_t)0x07U) /* COMP2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1831 /**
AnnaBridge 156:ff21514d8981 1832 *
AnnaBridge 156:ff21514d8981 1833 */
AnnaBridge 156:ff21514d8981 1834
AnnaBridge 156:ff21514d8981 1835 /**
AnnaBridge 156:ff21514d8981 1836 * @}
AnnaBridge 156:ff21514d8981 1837 */
AnnaBridge 156:ff21514d8981 1838
AnnaBridge 156:ff21514d8981 1839 /**
AnnaBridge 156:ff21514d8981 1840 * @}
AnnaBridge 156:ff21514d8981 1841 */
AnnaBridge 156:ff21514d8981 1842
AnnaBridge 156:ff21514d8981 1843 /** @defgroup GPIOEx_Private GPIOEx Private
AnnaBridge 156:ff21514d8981 1844 * @{
AnnaBridge 156:ff21514d8981 1845 */
AnnaBridge 156:ff21514d8981 1846 /**
AnnaBridge 156:ff21514d8981 1847 * @brief IS_GPIO_AF macro definition
AnnaBridge 156:ff21514d8981 1848 */
AnnaBridge 156:ff21514d8981 1849
AnnaBridge 156:ff21514d8981 1850 #define IS_GPIO_AF(__AF__) (((__AF__) == GPIO_AF0_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 1851 ((__AF__) == GPIO_AF0_TIM21 ) || \
AnnaBridge 156:ff21514d8981 1852 ((__AF__) == GPIO_AF0_SPI1 ) || \
AnnaBridge 156:ff21514d8981 1853 ((__AF__) == GPIO_AF0_USART2 ) || \
AnnaBridge 156:ff21514d8981 1854 ((__AF__) == GPIO_AF0_LPTIM1 ) || \
AnnaBridge 156:ff21514d8981 1855 ((__AF__) == GPIO_AF0_MCO ) || \
AnnaBridge 156:ff21514d8981 1856 ((__AF__) == GPIO_AF0_SWDIO ) || \
AnnaBridge 156:ff21514d8981 1857 ((__AF__) == GPIO_AF0_SWCLK ) || \
AnnaBridge 156:ff21514d8981 1858 ((__AF__) == GPIO_AF1_SPI1 ) || \
AnnaBridge 156:ff21514d8981 1859 ((__AF__) == GPIO_AF1_I2C1 ) || \
AnnaBridge 156:ff21514d8981 1860 ((__AF__) == GPIO_AF1_LPTIM1 ) || \
AnnaBridge 156:ff21514d8981 1861 ((__AF__) == GPIO_AF2_LPTIM1 ) || \
AnnaBridge 156:ff21514d8981 1862 ((__AF__) == GPIO_AF2_TIM2 ) || \
AnnaBridge 156:ff21514d8981 1863 ((__AF__) == GPIO_AF2_MCO ) || \
AnnaBridge 156:ff21514d8981 1864 ((__AF__) == GPIO_AF2_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 1865 ((__AF__) == GPIO_AF2_RTC ) || \
AnnaBridge 156:ff21514d8981 1866 ((__AF__) == GPIO_AF3_I2C1 ) || \
AnnaBridge 156:ff21514d8981 1867 ((__AF__) == GPIO_AF3_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 1868 ((__AF__) == GPIO_AF4_I2C1 ) || \
AnnaBridge 156:ff21514d8981 1869 ((__AF__) == GPIO_AF4_USART2 ) || \
AnnaBridge 156:ff21514d8981 1870 ((__AF__) == GPIO_AF4_LPUART1 ) || \
AnnaBridge 156:ff21514d8981 1871 ((__AF__) == GPIO_AF4_TIM22 ) || \
AnnaBridge 156:ff21514d8981 1872 ((__AF__) == GPIO_AF4_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 1873 ((__AF__) == GPIO_AF5_TIM2 ) || \
AnnaBridge 156:ff21514d8981 1874 ((__AF__) == GPIO_AF5_TIM21 ) || \
AnnaBridge 156:ff21514d8981 1875 ((__AF__) == GPIO_AF5_TIM22 ) || \
AnnaBridge 156:ff21514d8981 1876 ((__AF__) == GPIO_AF6_LPUART1 ) || \
AnnaBridge 156:ff21514d8981 1877 ((__AF__) == GPIO_AF6_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 1878 ((__AF__) == GPIO_AF7_COMP1 ) || \
AnnaBridge 156:ff21514d8981 1879 ((__AF__) == GPIO_AF7_COMP2 ))
AnnaBridge 156:ff21514d8981 1880
AnnaBridge 156:ff21514d8981 1881
AnnaBridge 156:ff21514d8981 1882 #define IS_GPIO_AF_AVAILABLE(__INSTANCE__,__AF__) \
AnnaBridge 156:ff21514d8981 1883 ((((__INSTANCE__) == GPIOA) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1884 ((__AF__) == GPIO_AF1_LPTIM1) || \
AnnaBridge 156:ff21514d8981 1885 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 1886 ((__AF__) == GPIO_AF3_I2C1) || \
AnnaBridge 156:ff21514d8981 1887 ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 1888 ((__AF__) == GPIO_AF5_TIM22) || \
AnnaBridge 156:ff21514d8981 1889 ((__AF__) == GPIO_AF6_LPUART1) || \
AnnaBridge 156:ff21514d8981 1890 ((__AF__) == GPIO_AF7_COMP2))) || \
AnnaBridge 156:ff21514d8981 1891 (((__INSTANCE__) == GPIOB) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1892 ((__AF__) == GPIO_AF1_SPI1) || \
AnnaBridge 156:ff21514d8981 1893 ((__AF__) == GPIO_AF2_LPTIM1) || \
AnnaBridge 156:ff21514d8981 1894 ((__AF__) == GPIO_AF3_I2C1) || \
AnnaBridge 156:ff21514d8981 1895 ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 1896 ((__AF__) == GPIO_AF5_TIM2) || \
AnnaBridge 156:ff21514d8981 1897 ((__AF__) == GPIO_AF6_EVENTOUT))) || \
AnnaBridge 156:ff21514d8981 1898 (((__INSTANCE__) == GPIOC) && (((__AF__) == GPIO_AF0_LPTIM1) || \
AnnaBridge 156:ff21514d8981 1899 ((__AF__) == GPIO_AF2_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 1900 ((__AF__) == GPIO_AF6_LPUART1))))
AnnaBridge 156:ff21514d8981 1901
AnnaBridge 156:ff21514d8981 1902 /**
AnnaBridge 156:ff21514d8981 1903 * @}
AnnaBridge 156:ff21514d8981 1904 */
AnnaBridge 156:ff21514d8981 1905
AnnaBridge 156:ff21514d8981 1906 #endif /* STM32L031xx/STM32L041xx*/
AnnaBridge 156:ff21514d8981 1907 /*------------------------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1908
AnnaBridge 156:ff21514d8981 1909 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1910 /*------------------------- STM32L011xx/STM32L021xx---------------------------*/
AnnaBridge 156:ff21514d8981 1911 /*----------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 1912 #if defined (STM32L011xx)|| defined (STM32L021xx)
AnnaBridge 156:ff21514d8981 1913 /* The table below gives an overview of the different alternate functions per port.
AnnaBridge 156:ff21514d8981 1914 * For more details refer yourself to the product data sheet.
AnnaBridge 156:ff21514d8981 1915 *
AnnaBridge 156:ff21514d8981 1916 */
AnnaBridge 156:ff21514d8981 1917 /* | AF0 | AF1 | AF2 | AF3 | AF4 | AF5 | AF6 | AF7 |
AnnaBridge 156:ff21514d8981 1918 *______________________________________________________________________________________
AnnaBridge 156:ff21514d8981 1919 * PA0 |USART2_RX|LPTIM1_IN1|TIM2_C1 | |USART2_CTS|TIM2_ETR|LPUART1_RX |COMP1_OUT|
AnnaBridge 156:ff21514d8981 1920 * PA1 |EVENTOUT |LPTIM1_IN2|TIM2_C2 |I2C1 |USART2_RTS|TIM21_TR|LPUART1_TX | |
AnnaBridge 156:ff21514d8981 1921 * PA2 |TIM21_C1 | |TIM2_C3 | |USART2_TX | |LPUART1_TX |COMP2_OUT|
AnnaBridge 156:ff21514d8981 1922 * PA3 |TIM21_C2 | |TIM2_C4 | |USART2_RX | |LPUART1_RX | |
AnnaBridge 156:ff21514d8981 1923 * PA4 |SPI1 |LPTIM1_IN1|LPTIM1_TR|I2C1_SCL|USART2_CK |TIM2_TR |LPUART1_TX |COMP2_OUT|
AnnaBridge 156:ff21514d8981 1924 * PA5 |SPI1 |LPTIM1_IN2|TIM2_TR | | |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1925 * PA6 |SPI1 |LPTIM1_ETR| | |LPUART1_CT| |EVENTOUT |COMP1_OUT|
AnnaBridge 156:ff21514d8981 1926 * PA7 |SPI1 |LPTIM1_OUT| | |USART2_CTS|TIM21_T |EVENTOUT |COMP2_OUT|
AnnaBridge 156:ff21514d8981 1927 * PA8 |MCO | |LPTIM1_I1|EVENTOUT|USART2_CK |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1928 * PA9 |MCO |I2C1_SCL |LPTIM1_O | |USART2_TX |TIM21_C2| |COMP1_OUT|
AnnaBridge 156:ff21514d8981 1929 * PA10|TIM21_C1 |I2C1_SDA |RTC_REFIN| |USART2_RX |TIM2_C3 | |COMP1_OUT|
AnnaBridge 156:ff21514d8981 1930 * PA11|SPI1 |LPTIM1_OUT|EVENTOUT | |USART2_CTS|TIM21_C2| |COMP1_OUT|
AnnaBridge 156:ff21514d8981 1931 * PA12|SPI1 | |EVENTOUT | |USART2_RTS| | |COMP2_OUT|
AnnaBridge 156:ff21514d8981 1932 * PA13|SWDIO |LPTIM1_T | |I2C1_SDA| |SPI1 |LPUART1_RX |COMP1_OUT|
AnnaBridge 156:ff21514d8981 1933 * PA14|SWCLK |LPTIM1_O | |I2C1_SMB|USART2_TX |SPI1 |LPUART1_TX |COMP2_OUT|
AnnaBridge 156:ff21514d8981 1934 * PA15|SPI1 | |TIM2_TR |EVENTOUT|USART2_RX |TIM2_C1 | | |
AnnaBridge 156:ff21514d8981 1935 *______________________________________________________________________________________ |
AnnaBridge 156:ff21514d8981 1936 * PB0 |EVENTOUT |SPI1 |TIM2_C2 | |USART2_RTS|TIM2_C3 | | |
AnnaBridge 156:ff21514d8981 1937 * PB1 |USART2_CK|SPI1 |LPTIM1_I1| |LPUART1_RT|TIM2_C4 | | |
AnnaBridge 156:ff21514d8981 1938 * PB2 | | |LPTIM1_O | | | | | |
AnnaBridge 156:ff21514d8981 1939 * PB3 |SPI1 | |TIM2_C2 | |EVENTOUT | | | |
AnnaBridge 156:ff21514d8981 1940 * PB4 |SPI1 | |EVENTOUT | | | | | |
AnnaBridge 156:ff21514d8981 1941 * PB5 |SPI1 | |LPTIM1_I1|I2C1 | |TIM21_C1| | |
AnnaBridge 156:ff21514d8981 1942 * PB6 |USART2_TX|I2C1_SCL |LPTIM1_T | | |TIM2_C3 |LPUART1_TX | |
AnnaBridge 156:ff21514d8981 1943 * PB7 |USART2_RX|I2C1 |LPTIM1_I2| | |TIM2_C4 |LPUART1_RX | |
AnnaBridge 156:ff21514d8981 1944 * PB8 |USART2_TX| |EVENTOUT | |I2C1 |SPI1 | | |
AnnaBridge 156:ff21514d8981 1945 * PB9 | | | | | | | | |
AnnaBridge 156:ff21514d8981 1946 *______________________________________________________________________________________ |
AnnaBridge 156:ff21514d8981 1947 * PC14| | | | | | | | |
AnnaBridge 156:ff21514d8981 1948 * PC15| | | | | | | | |
AnnaBridge 156:ff21514d8981 1949 *______________________________________________________________________________________ |
AnnaBridge 156:ff21514d8981 1950 */
AnnaBridge 156:ff21514d8981 1951
AnnaBridge 156:ff21514d8981 1952 /** @defgroup GPIOEx_Alternate_function_selection Alternate function selection
AnnaBridge 156:ff21514d8981 1953 * @{
AnnaBridge 156:ff21514d8981 1954 */
AnnaBridge 156:ff21514d8981 1955
AnnaBridge 156:ff21514d8981 1956 /*
AnnaBridge 156:ff21514d8981 1957 * Alternate function AF0
AnnaBridge 156:ff21514d8981 1958 */
AnnaBridge 156:ff21514d8981 1959 #define GPIO_AF0_EVENTOUT ((uint8_t)0x00U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1960 #define GPIO_AF0_TIM21 ((uint8_t)0x00U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1961 #define GPIO_AF0_SPI1 ((uint8_t)0x00U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1962 #define GPIO_AF0_USART2 ((uint8_t)0x00U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1963 #define GPIO_AF0_MCO ((uint8_t)0x00U) /* MCO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1964 #define GPIO_AF0_SWDIO ((uint8_t)0x00U) /* SWDIO Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1965 #define GPIO_AF0_SWCLK ((uint8_t)0x00U) /* SWCLK Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1966 /**
AnnaBridge 156:ff21514d8981 1967 *
AnnaBridge 156:ff21514d8981 1968 */
AnnaBridge 156:ff21514d8981 1969
AnnaBridge 156:ff21514d8981 1970 /*
AnnaBridge 156:ff21514d8981 1971 * Alternate function AF1
AnnaBridge 156:ff21514d8981 1972 */
AnnaBridge 156:ff21514d8981 1973 #define GPIO_AF1_SPI1 ((uint8_t)0x01U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1974 #define GPIO_AF1_I2C1 ((uint8_t)0x01U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1975 #define GPIO_AF1_LPTIM1 ((uint8_t)0x01U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1976 /**
AnnaBridge 156:ff21514d8981 1977 *
AnnaBridge 156:ff21514d8981 1978 */
AnnaBridge 156:ff21514d8981 1979
AnnaBridge 156:ff21514d8981 1980 /* Alternate function AF2
AnnaBridge 156:ff21514d8981 1981 *
AnnaBridge 156:ff21514d8981 1982 */
AnnaBridge 156:ff21514d8981 1983 #define GPIO_AF2_LPTIM1 ((uint8_t)0x02U) /* LPTIM1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1984 #define GPIO_AF2_TIM2 ((uint8_t)0x02U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1985 #define GPIO_AF2_RTC ((uint8_t)0x02U) /* RTC Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1986 #define GPIO_AF2_EVENTOUT ((uint8_t)0x02U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1987 /**
AnnaBridge 156:ff21514d8981 1988 *
AnnaBridge 156:ff21514d8981 1989 */
AnnaBridge 156:ff21514d8981 1990
AnnaBridge 156:ff21514d8981 1991 /*
AnnaBridge 156:ff21514d8981 1992 * Alternate function AF3
AnnaBridge 156:ff21514d8981 1993 */
AnnaBridge 156:ff21514d8981 1994 #define GPIO_AF3_I2C1 ((uint8_t)0x03U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1995 #define GPIO_AF3_EVENTOUT ((uint8_t)0x03U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 1996 /**
AnnaBridge 156:ff21514d8981 1997 *
AnnaBridge 156:ff21514d8981 1998 */
AnnaBridge 156:ff21514d8981 1999
AnnaBridge 156:ff21514d8981 2000 /*
AnnaBridge 156:ff21514d8981 2001 * Alternate function AF4
AnnaBridge 156:ff21514d8981 2002 */
AnnaBridge 156:ff21514d8981 2003 #define GPIO_AF4_I2C1 ((uint8_t)0x04U) /* I2C1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2004 #define GPIO_AF4_USART2 ((uint8_t)0x04U) /* USART2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2005 #define GPIO_AF4_LPUART1 ((uint8_t)0x04U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2006 #define GPIO_AF4_EVENTOUT ((uint8_t)0x04U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2007 /**
AnnaBridge 156:ff21514d8981 2008 *
AnnaBridge 156:ff21514d8981 2009 */
AnnaBridge 156:ff21514d8981 2010
AnnaBridge 156:ff21514d8981 2011 /*
AnnaBridge 156:ff21514d8981 2012 * Alternate function AF5
AnnaBridge 156:ff21514d8981 2013 */
AnnaBridge 156:ff21514d8981 2014 #define GPIO_AF5_TIM2 ((uint8_t)0x05U) /* TIM2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2015 #define GPIO_AF5_TIM21 ((uint8_t)0x05U) /* TIM21 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2016 #define GPIO_AF5_SPI1 ((uint8_t)0x05U) /* SPI1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2017 /**
AnnaBridge 156:ff21514d8981 2018 *
AnnaBridge 156:ff21514d8981 2019 */
AnnaBridge 156:ff21514d8981 2020
AnnaBridge 156:ff21514d8981 2021 /*
AnnaBridge 156:ff21514d8981 2022 * Alternate function AF6
AnnaBridge 156:ff21514d8981 2023 */
AnnaBridge 156:ff21514d8981 2024 #define GPIO_AF6_LPUART1 ((uint8_t)0x06U) /* LPUART1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2025 #define GPIO_AF6_EVENTOUT ((uint8_t)0x06U) /* EVENTOUT Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2026 /**
AnnaBridge 156:ff21514d8981 2027 *
AnnaBridge 156:ff21514d8981 2028 */
AnnaBridge 156:ff21514d8981 2029
AnnaBridge 156:ff21514d8981 2030 /*
AnnaBridge 156:ff21514d8981 2031 * Alternate function AF7
AnnaBridge 156:ff21514d8981 2032 */
AnnaBridge 156:ff21514d8981 2033 #define GPIO_AF7_COMP1 ((uint8_t)0x07U) /* COMP1 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2034 #define GPIO_AF7_COMP2 ((uint8_t)0x07U) /* COMP2 Alternate Function mapping */
AnnaBridge 156:ff21514d8981 2035 /**
AnnaBridge 156:ff21514d8981 2036 *
AnnaBridge 156:ff21514d8981 2037 */
AnnaBridge 156:ff21514d8981 2038
AnnaBridge 156:ff21514d8981 2039 /**
AnnaBridge 156:ff21514d8981 2040 * @}
AnnaBridge 156:ff21514d8981 2041 */
AnnaBridge 156:ff21514d8981 2042
AnnaBridge 156:ff21514d8981 2043 /**
AnnaBridge 156:ff21514d8981 2044 * @}
AnnaBridge 156:ff21514d8981 2045 */
AnnaBridge 156:ff21514d8981 2046
AnnaBridge 156:ff21514d8981 2047 /** @defgroup GPIOEx_Private GPIOEx Private
AnnaBridge 156:ff21514d8981 2048 * @{
AnnaBridge 156:ff21514d8981 2049 */
AnnaBridge 156:ff21514d8981 2050 /**
AnnaBridge 156:ff21514d8981 2051 * IS_GPIO_AF macro definition
AnnaBridge 156:ff21514d8981 2052 */
AnnaBridge 156:ff21514d8981 2053
AnnaBridge 156:ff21514d8981 2054 #define IS_GPIO_AF(__AF__) (((__AF__) == GPIO_AF0_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 2055 ((__AF__) == GPIO_AF0_TIM21 ) || \
AnnaBridge 156:ff21514d8981 2056 ((__AF__) == GPIO_AF0_SPI1 ) || \
AnnaBridge 156:ff21514d8981 2057 ((__AF__) == GPIO_AF0_USART2 ) || \
AnnaBridge 156:ff21514d8981 2058 ((__AF__) == GPIO_AF0_MCO ) || \
AnnaBridge 156:ff21514d8981 2059 ((__AF__) == GPIO_AF0_SWDIO ) || \
AnnaBridge 156:ff21514d8981 2060 ((__AF__) == GPIO_AF0_SWCLK ) || \
AnnaBridge 156:ff21514d8981 2061 ((__AF__) == GPIO_AF1_SPI1 ) || \
AnnaBridge 156:ff21514d8981 2062 ((__AF__) == GPIO_AF1_I2C1 ) || \
AnnaBridge 156:ff21514d8981 2063 ((__AF__) == GPIO_AF1_LPTIM1 ) || \
AnnaBridge 156:ff21514d8981 2064 ((__AF__) == GPIO_AF2_LPTIM1 ) || \
AnnaBridge 156:ff21514d8981 2065 ((__AF__) == GPIO_AF2_TIM2 ) || \
AnnaBridge 156:ff21514d8981 2066 ((__AF__) == GPIO_AF2_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 2067 ((__AF__) == GPIO_AF2_RTC ) || \
AnnaBridge 156:ff21514d8981 2068 ((__AF__) == GPIO_AF3_I2C1 ) || \
AnnaBridge 156:ff21514d8981 2069 ((__AF__) == GPIO_AF3_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 2070 ((__AF__) == GPIO_AF4_I2C1 ) || \
AnnaBridge 156:ff21514d8981 2071 ((__AF__) == GPIO_AF4_USART2 ) || \
AnnaBridge 156:ff21514d8981 2072 ((__AF__) == GPIO_AF4_LPUART1 ) || \
AnnaBridge 156:ff21514d8981 2073 ((__AF__) == GPIO_AF4_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 2074 ((__AF__) == GPIO_AF5_TIM2 ) || \
AnnaBridge 156:ff21514d8981 2075 ((__AF__) == GPIO_AF5_TIM21 ) || \
AnnaBridge 156:ff21514d8981 2076 ((__AF__) == GPIO_AF5_SPI1 ) || \
AnnaBridge 156:ff21514d8981 2077 ((__AF__) == GPIO_AF6_LPUART1 ) || \
AnnaBridge 156:ff21514d8981 2078 ((__AF__) == GPIO_AF6_EVENTOUT ) || \
AnnaBridge 156:ff21514d8981 2079 ((__AF__) == GPIO_AF7_COMP1 ) || \
AnnaBridge 156:ff21514d8981 2080 ((__AF__) == GPIO_AF7_COMP2 ))
AnnaBridge 156:ff21514d8981 2081
AnnaBridge 156:ff21514d8981 2082
AnnaBridge 156:ff21514d8981 2083 #define IS_GPIO_AF_AVAILABLE(__INSTANCE__,__AF__) \
AnnaBridge 156:ff21514d8981 2084 ((((__INSTANCE__) == GPIOA) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 2085 ((__AF__) == GPIO_AF1_LPTIM1) || \
AnnaBridge 156:ff21514d8981 2086 ((__AF__) == GPIO_AF2_TIM2) || \
AnnaBridge 156:ff21514d8981 2087 ((__AF__) == GPIO_AF3_I2C1) || \
AnnaBridge 156:ff21514d8981 2088 ((__AF__) == GPIO_AF4_USART2) || \
AnnaBridge 156:ff21514d8981 2089 ((__AF__) == GPIO_AF5_TIM2) || \
AnnaBridge 156:ff21514d8981 2090 ((__AF__) == GPIO_AF6_LPUART1) || \
AnnaBridge 156:ff21514d8981 2091 ((__AF__) == GPIO_AF7_COMP2))) || \
AnnaBridge 156:ff21514d8981 2092 (((__INSTANCE__) == GPIOB) && (((__AF__) == GPIO_AF0_EVENTOUT) || \
AnnaBridge 156:ff21514d8981 2093 ((__AF__) == GPIO_AF1_SPI1) || \
AnnaBridge 156:ff21514d8981 2094 ((__AF__) == GPIO_AF2_LPTIM1) || \
AnnaBridge 156:ff21514d8981 2095 ((__AF__) == GPIO_AF3_I2C1) || \
AnnaBridge 156:ff21514d8981 2096 ((__AF__) == GPIO_AF4_LPUART1) || \
AnnaBridge 156:ff21514d8981 2097 ((__AF__) == GPIO_AF5_TIM2) || \
AnnaBridge 156:ff21514d8981 2098 ((__AF__) == GPIO_AF6_EVENTOUT))))
AnnaBridge 156:ff21514d8981 2099
AnnaBridge 156:ff21514d8981 2100 /**
AnnaBridge 156:ff21514d8981 2101 * @}
AnnaBridge 156:ff21514d8981 2102 */
AnnaBridge 156:ff21514d8981 2103
AnnaBridge 156:ff21514d8981 2104 #endif /* STM32L011xx/STM32L021xx*/
AnnaBridge 156:ff21514d8981 2105 /*------------------------------------------------------------------------------------------*/
AnnaBridge 156:ff21514d8981 2106
AnnaBridge 156:ff21514d8981 2107
AnnaBridge 156:ff21514d8981 2108
AnnaBridge 156:ff21514d8981 2109 #if defined (STM32L083xx) || defined (STM32L082xx) || defined (STM32L081xx) || \
AnnaBridge 156:ff21514d8981 2110 defined (STM32L073xx) || defined (STM32L072xx) || defined (STM32L071xx)
AnnaBridge 156:ff21514d8981 2111
AnnaBridge 156:ff21514d8981 2112 /** @addtogroup GPIOEx_Exported_Constants
AnnaBridge 156:ff21514d8981 2113 * @{
AnnaBridge 156:ff21514d8981 2114 */
AnnaBridge 156:ff21514d8981 2115 /** @defgroup GPIOEx_Pin_Available Pin available
AnnaBridge 156:ff21514d8981 2116 * @{
AnnaBridge 156:ff21514d8981 2117 */
AnnaBridge 156:ff21514d8981 2118 #define GPIOA_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2119 #define GPIOB_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2120 #define GPIOC_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2121 #define GPIOD_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2122 #define GPIOE_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2123 #define GPIOH_PIN_AVAILABLE (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_9 | GPIO_PIN_10)
AnnaBridge 156:ff21514d8981 2124 /**
AnnaBridge 156:ff21514d8981 2125 * @}
AnnaBridge 156:ff21514d8981 2126 */
AnnaBridge 156:ff21514d8981 2127 /**
AnnaBridge 156:ff21514d8981 2128 * @}
AnnaBridge 156:ff21514d8981 2129 */
AnnaBridge 156:ff21514d8981 2130
AnnaBridge 156:ff21514d8981 2131 /** @addtogroup GPIOEx_Private
AnnaBridge 156:ff21514d8981 2132 * @{
AnnaBridge 156:ff21514d8981 2133 */
AnnaBridge 156:ff21514d8981 2134 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
AnnaBridge 156:ff21514d8981 2135 ((__GPIOx__) == (GPIOB))? 1U :\
AnnaBridge 156:ff21514d8981 2136 ((__GPIOx__) == (GPIOC))? 2U :\
AnnaBridge 156:ff21514d8981 2137 ((__GPIOx__) == (GPIOD))? 3U :\
AnnaBridge 156:ff21514d8981 2138 ((__GPIOx__) == (GPIOE))? 4U :\
AnnaBridge 156:ff21514d8981 2139 ((__GPIOx__) == (GPIOH))? 5U : 6U)
AnnaBridge 156:ff21514d8981 2140
AnnaBridge 156:ff21514d8981 2141 #define IS_GPIO_PIN_AVAILABLE(__INSTANCE__,__PIN__) \
AnnaBridge 156:ff21514d8981 2142 ((((__INSTANCE__) == GPIOA) && (((__PIN__) & (GPIOA_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOA_PIN_AVAILABLE)) == (GPIOA_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2143 (((__INSTANCE__) == GPIOB) && (((__PIN__) & (GPIOB_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOB_PIN_AVAILABLE)) == (GPIOB_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2144 (((__INSTANCE__) == GPIOC) && (((__PIN__) & (GPIOC_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOC_PIN_AVAILABLE)) == (GPIOC_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2145 (((__INSTANCE__) == GPIOD) && (((__PIN__) & (GPIOD_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOD_PIN_AVAILABLE)) == (GPIOD_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2146 (((__INSTANCE__) == GPIOE) && (((__PIN__) & (GPIOE_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOE_PIN_AVAILABLE)) == (GPIOE_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2147 (((__INSTANCE__) == GPIOH) && (((__PIN__) & (GPIOH_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOH_PIN_AVAILABLE)) == (GPIOH_PIN_AVAILABLE))))
AnnaBridge 156:ff21514d8981 2148 /**
AnnaBridge 156:ff21514d8981 2149 * @}
AnnaBridge 156:ff21514d8981 2150 */
AnnaBridge 156:ff21514d8981 2151 #elif defined (STM32L031xx) || defined (STM32L041xx)
AnnaBridge 156:ff21514d8981 2152
AnnaBridge 156:ff21514d8981 2153 /** @addtogroup GPIOEx_Exported_Constants
AnnaBridge 156:ff21514d8981 2154 * @{
AnnaBridge 156:ff21514d8981 2155 */
AnnaBridge 156:ff21514d8981 2156 /** @defgroup GPIOEx_Pin_Available Pin available
AnnaBridge 156:ff21514d8981 2157 * @{
AnnaBridge 156:ff21514d8981 2158 */
AnnaBridge 156:ff21514d8981 2159
AnnaBridge 156:ff21514d8981 2160 #define GPIOA_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2161 #define GPIOB_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2162 #define GPIOC_PIN_AVAILABLE (GPIO_PIN_0 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15)
AnnaBridge 156:ff21514d8981 2163 #define GPIOH_PIN_AVAILABLE (GPIO_PIN_0 | GPIO_PIN_1)
AnnaBridge 156:ff21514d8981 2164 /**
AnnaBridge 156:ff21514d8981 2165 * @}
AnnaBridge 156:ff21514d8981 2166 */
AnnaBridge 156:ff21514d8981 2167 /**
AnnaBridge 156:ff21514d8981 2168 * @}
AnnaBridge 156:ff21514d8981 2169 */
AnnaBridge 156:ff21514d8981 2170
AnnaBridge 156:ff21514d8981 2171 /** @addtogroup GPIOEx_Private
AnnaBridge 156:ff21514d8981 2172 * @{
AnnaBridge 156:ff21514d8981 2173 */
AnnaBridge 156:ff21514d8981 2174 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
AnnaBridge 156:ff21514d8981 2175 ((__GPIOx__) == (GPIOB))? 1U :\
AnnaBridge 156:ff21514d8981 2176 ((__GPIOx__) == (GPIOC))? 2U :\
AnnaBridge 156:ff21514d8981 2177 ((__GPIOx__) == (GPIOH))? 5U : 6U)
AnnaBridge 156:ff21514d8981 2178
AnnaBridge 156:ff21514d8981 2179
AnnaBridge 156:ff21514d8981 2180 #define IS_GPIO_PIN_AVAILABLE(__INSTANCE__,__PIN__) \
AnnaBridge 156:ff21514d8981 2181 ((((__INSTANCE__) == GPIOA) && (((__PIN__) & (GPIOA_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOA_PIN_AVAILABLE)) == (GPIOA_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2182 (((__INSTANCE__) == GPIOB) && (((__PIN__) & (GPIOB_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOB_PIN_AVAILABLE)) == (GPIOB_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2183 (((__INSTANCE__) == GPIOC) && (((__PIN__) & (GPIOC_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOC_PIN_AVAILABLE)) == (GPIOC_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2184 (((__INSTANCE__) == GPIOH) && (((__PIN__) & (GPIOH_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOH_PIN_AVAILABLE)) == (GPIOH_PIN_AVAILABLE))))
AnnaBridge 156:ff21514d8981 2185
AnnaBridge 156:ff21514d8981 2186 /**
AnnaBridge 156:ff21514d8981 2187 * @}
AnnaBridge 156:ff21514d8981 2188 */
AnnaBridge 156:ff21514d8981 2189
AnnaBridge 156:ff21514d8981 2190 #elif defined (STM32L011xx) || defined (STM32L021xx)
AnnaBridge 156:ff21514d8981 2191
AnnaBridge 156:ff21514d8981 2192 /** @addtogroup GPIOEx_Exported_Constants
AnnaBridge 156:ff21514d8981 2193 * @{
AnnaBridge 156:ff21514d8981 2194 */
AnnaBridge 156:ff21514d8981 2195 /** @defgroup GPIOEx_Pin_Available Pin available
AnnaBridge 156:ff21514d8981 2196 * @{
AnnaBridge 156:ff21514d8981 2197 */
AnnaBridge 156:ff21514d8981 2198
AnnaBridge 156:ff21514d8981 2199 #define GPIOA_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2200 #define GPIOB_PIN_AVAILABLE (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | \
AnnaBridge 156:ff21514d8981 2201 GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 )
AnnaBridge 156:ff21514d8981 2202 #define GPIOC_PIN_AVAILABLE (GPIO_PIN_14 | GPIO_PIN_15)
AnnaBridge 156:ff21514d8981 2203
AnnaBridge 156:ff21514d8981 2204 /**
AnnaBridge 156:ff21514d8981 2205 * @}
AnnaBridge 156:ff21514d8981 2206 */
AnnaBridge 156:ff21514d8981 2207 /**
AnnaBridge 156:ff21514d8981 2208 * @}
AnnaBridge 156:ff21514d8981 2209 */
AnnaBridge 156:ff21514d8981 2210
AnnaBridge 156:ff21514d8981 2211 /** @addtogroup GPIOEx_Private
AnnaBridge 156:ff21514d8981 2212 * @{
AnnaBridge 156:ff21514d8981 2213 */
AnnaBridge 156:ff21514d8981 2214 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
AnnaBridge 156:ff21514d8981 2215 ((__GPIOx__) == (GPIOB))? 1U :\
AnnaBridge 156:ff21514d8981 2216 ((__GPIOx__) == (GPIOC))? 2U : 6U)
AnnaBridge 156:ff21514d8981 2217
AnnaBridge 156:ff21514d8981 2218
AnnaBridge 156:ff21514d8981 2219 #define IS_GPIO_PIN_AVAILABLE(__INSTANCE__,__PIN__) \
AnnaBridge 156:ff21514d8981 2220 ((((__INSTANCE__) == GPIOA) && (((__PIN__) & (GPIOA_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOA_PIN_AVAILABLE)) == (GPIOA_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2221 (((__INSTANCE__) == GPIOB) && (((__PIN__) & (GPIOB_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOB_PIN_AVAILABLE)) == (GPIOB_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2222 (((__INSTANCE__) == GPIOC) && (((__PIN__) & (GPIOC_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOC_PIN_AVAILABLE)) == (GPIOC_PIN_AVAILABLE))))
AnnaBridge 156:ff21514d8981 2223 /**
AnnaBridge 156:ff21514d8981 2224 * @}
AnnaBridge 156:ff21514d8981 2225 */
AnnaBridge 156:ff21514d8981 2226
AnnaBridge 156:ff21514d8981 2227 #elif defined (STM32L063xx) || defined (STM32L062xx) || defined (STM32L061xx) || \
AnnaBridge 156:ff21514d8981 2228 defined (STM32L053xx) || defined (STM32L052xx) || defined (STM32L051xx)
AnnaBridge 156:ff21514d8981 2229
AnnaBridge 156:ff21514d8981 2230 /** @addtogroup GPIOEx_Exported_Constants
AnnaBridge 156:ff21514d8981 2231 * @{
AnnaBridge 156:ff21514d8981 2232 */
AnnaBridge 156:ff21514d8981 2233 /** @defgroup GPIOEx_Pin_Available Pin available
AnnaBridge 156:ff21514d8981 2234 * @{
AnnaBridge 156:ff21514d8981 2235 */
AnnaBridge 156:ff21514d8981 2236 #define GPIOA_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2237 #define GPIOB_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2238 #define GPIOC_PIN_AVAILABLE GPIO_PIN_All
AnnaBridge 156:ff21514d8981 2239 #define GPIOD_PIN_AVAILABLE GPIO_PIN_2
AnnaBridge 156:ff21514d8981 2240 #define GPIOH_PIN_AVAILABLE GPIO_PIN_0 | GPIO_PIN_1
AnnaBridge 156:ff21514d8981 2241 /**
AnnaBridge 156:ff21514d8981 2242 * @}
AnnaBridge 156:ff21514d8981 2243 */
AnnaBridge 156:ff21514d8981 2244 /**
AnnaBridge 156:ff21514d8981 2245 * @}
AnnaBridge 156:ff21514d8981 2246 */
AnnaBridge 156:ff21514d8981 2247
AnnaBridge 156:ff21514d8981 2248 /** @addtogroup GPIOEx_Private
AnnaBridge 156:ff21514d8981 2249 * @{
AnnaBridge 156:ff21514d8981 2250 */
AnnaBridge 156:ff21514d8981 2251 #define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
AnnaBridge 156:ff21514d8981 2252 ((__GPIOx__) == (GPIOB))? 1U :\
AnnaBridge 156:ff21514d8981 2253 ((__GPIOx__) == (GPIOC))? 2U :\
AnnaBridge 156:ff21514d8981 2254 ((__GPIOx__) == (GPIOD))? 3U :\
AnnaBridge 156:ff21514d8981 2255 ((__GPIOx__) == (GPIOH))? 5U : 6U)
AnnaBridge 156:ff21514d8981 2256
AnnaBridge 156:ff21514d8981 2257 #define IS_GPIO_PIN_AVAILABLE(__INSTANCE__,__PIN__) \
AnnaBridge 156:ff21514d8981 2258 ((((__INSTANCE__) == GPIOA) && (((__PIN__) & (GPIOA_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOA_PIN_AVAILABLE)) == (GPIOA_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2259 (((__INSTANCE__) == GPIOB) && (((__PIN__) & (GPIOB_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOB_PIN_AVAILABLE)) == (GPIOB_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2260 (((__INSTANCE__) == GPIOC) && (((__PIN__) & (GPIOC_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOC_PIN_AVAILABLE)) == (GPIOC_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2261 (((__INSTANCE__) == GPIOD) && (((__PIN__) & (GPIOD_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOD_PIN_AVAILABLE)) == (GPIOD_PIN_AVAILABLE))) || \
AnnaBridge 156:ff21514d8981 2262 (((__INSTANCE__) == GPIOH) && (((__PIN__) & (GPIOH_PIN_AVAILABLE)) != 0U) && (((__PIN__) | (GPIOH_PIN_AVAILABLE)) == (GPIOH_PIN_AVAILABLE))))
AnnaBridge 156:ff21514d8981 2263 /**
AnnaBridge 156:ff21514d8981 2264 * @}
AnnaBridge 156:ff21514d8981 2265 */
AnnaBridge 156:ff21514d8981 2266
AnnaBridge 156:ff21514d8981 2267 #endif /* STM32L083xx || STM32L082xx || STM32L081xx || STM32L073xx || STM32L072xx || STM32L071xx*/
AnnaBridge 156:ff21514d8981 2268
AnnaBridge 156:ff21514d8981 2269
AnnaBridge 156:ff21514d8981 2270 /**
AnnaBridge 156:ff21514d8981 2271 * @}
AnnaBridge 156:ff21514d8981 2272 */
AnnaBridge 156:ff21514d8981 2273
AnnaBridge 156:ff21514d8981 2274 /**
AnnaBridge 156:ff21514d8981 2275 * @}
AnnaBridge 156:ff21514d8981 2276 */
AnnaBridge 156:ff21514d8981 2277 #ifdef __cplusplus
AnnaBridge 156:ff21514d8981 2278 }
AnnaBridge 156:ff21514d8981 2279 #endif
AnnaBridge 156:ff21514d8981 2280
AnnaBridge 156:ff21514d8981 2281 #endif /* __STM32L0xx_HAL_GPIO_EX_H */
AnnaBridge 156:ff21514d8981 2282
AnnaBridge 156:ff21514d8981 2283 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
AnnaBridge 156:ff21514d8981 2284