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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

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

Committer:
AnnaBridge
Date:
Thu Nov 09 11:14:10 2017 +0000
Revision:
157:e7ca05fa8600
Child:
167:84c0a372a020
Release 155 of the mbed library.

Who changed what in which revision?

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