The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Thu Nov 08 11:45:42 2018 +0000
Revision:
171:3a7713b1edbc
Parent:
TARGET_NUCLEO_L011K4/TARGET_STM/TARGET_STM32L0/device/stm32l0xx_hal_gpio_ex.h@167:84c0a372a020
mbed library. Release version 164

Who changed what in which revision?

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