fix LPC812 PWM

Dependents:   IR_LED_Send

Fork of mbed-dev by mbed official

Committer:
nameless129
Date:
Mon May 16 16:50:30 2016 +0000
Revision:
129:2e517c56bcfb
Parent:
113:b3775bf36a83
PWM Fix:Duty 0%??H???????????????

Who changed what in which revision?

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