b luo / mbed-dev

Fork of mbed-dev by mbed official

Committer:
<>
Date:
Fri Oct 28 11:17:30 2016 +0100
Revision:
149:156823d33999
Parent:
targets/cmsis/TARGET_STM/TARGET_STM32L0/stm32l0xx_hal_gpio_ex.h@144:ef7eb2e8f9f7
This updates the lib to the mbed lib v128

NOTE: This release includes a restructuring of the file and directory locations and thus some
include paths in your code may need updating accordingly.

Who changed what in which revision?

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