mbed official / mbed

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

Committer:
<>
Date:
Thu Nov 24 11:01:25 2016 +0000
Revision:
130:d75b3fe1f5cb
Parent:
128:9bcdf88f62b0
Release 130 of the mbed library

Ports for Upcoming Targets


Fixes and Changes

3127: Fixed the issue about push/pop of VFP register. https://github.com/ARMmbed/mbed-os/pull/3127
3176: Modifying micro:bit pin names to mirror micro:bit edge connector https://github.com/ARMmbed/mbed-os/pull/3176
3160: Fix wrong index at LPC43xx tx end ring assignment https://github.com/ARMmbed/mbed-os/pull/3160
3217: Add I2C_ASYNCH capability for DISCO_F469NI https://github.com/ARMmbed/mbed-os/pull/3217
3211: [NUC472/M453] Support single UART shared by multiple serial objects and other updates https://github.com/ARMmbed/mbed-os/pull/3211
3198: NUCLEO_F410RB: Add I2C_ASYNCH capability https://github.com/ARMmbed/mbed-os/pull/3198
3194: Update K64 sdk drivers https://github.com/ARMmbed/mbed-os/pull/3194
3159: User trim values for NCS36510 https://github.com/ARMmbed/mbed-os/pull/3159
3243: Fix make exporters compilation https://github.com/ARMmbed/mbed-os/pull/3243
3231: STM32F3: DISCO_F303VC - Add missing UART and ADC pin muxing options https://github.com/ARMmbed/mbed-os/pull/3231
3233: K20xx Calculate PWM clock relative to bus clock https://github.com/ARMmbed/mbed-os/pull/3233
3237: Added back USART 6 pins https://github.com/ARMmbed/mbed-os/pull/3237
3253: Fix default polarity on LPC43XX PWM driver https://github.com/ARMmbed/mbed-os/pull/3253
3238: Dev i2c stm32f4hal https://github.com/ARMmbed/mbed-os/pull/3238
3251: Dev stm32l0 cube v1.7.0 https://github.com/ARMmbed/mbed-os/pull/3251
3252: [NORDIC - NRF51 - MBED 2] Fix non handled RTC IRQ https://github.com/ARMmbed/mbed-os/pull/3252

Who changed what in which revision?

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