STM32F439xx HAL User Manual
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32f4xx_hal_gpio_ex.h 00004 * @author MCD Application Team 00005 * @brief Header file of GPIO HAL Extension module. 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2> 00010 * 00011 * Redistribution and use in source and binary forms, with or without modification, 00012 * are permitted provided that the following conditions are met: 00013 * 1. Redistributions of source code must retain the above copyright notice, 00014 * this list of conditions and the following disclaimer. 00015 * 2. Redistributions in binary form must reproduce the above copyright notice, 00016 * this list of conditions and the following disclaimer in the documentation 00017 * and/or other materials provided with the distribution. 00018 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00019 * may be used to endorse or promote products derived from this software 00020 * without specific prior written permission. 00021 * 00022 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00023 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00024 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00025 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00026 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00027 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00028 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00029 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00030 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00031 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00032 * 00033 ****************************************************************************** 00034 */ 00035 00036 /* Define to prevent recursive inclusion -------------------------------------*/ 00037 #ifndef __STM32F4xx_HAL_GPIO_EX_H 00038 #define __STM32F4xx_HAL_GPIO_EX_H 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00044 /* Includes ------------------------------------------------------------------*/ 00045 #include "stm32f4xx_hal_def.h" 00046 00047 /** @addtogroup STM32F4xx_HAL_Driver 00048 * @{ 00049 */ 00050 00051 /** @defgroup GPIOEx GPIOEx 00052 * @{ 00053 */ 00054 00055 /* Exported types ------------------------------------------------------------*/ 00056 /* Exported constants --------------------------------------------------------*/ 00057 /** @defgroup GPIOEx_Exported_Constants GPIO Exported Constants 00058 * @{ 00059 */ 00060 00061 /** @defgroup GPIO_Alternate_function_selection GPIO Alternate Function Selection 00062 * @{ 00063 */ 00064 00065 /*------------------------------------------ STM32F429xx/STM32F439xx ---------*/ 00066 #if defined(STM32F429xx) || defined(STM32F439xx) 00067 /** 00068 * @brief AF 0 selection 00069 */ 00070 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 00071 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 00072 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 00073 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 00074 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 00075 00076 /** 00077 * @brief AF 1 selection 00078 */ 00079 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 00080 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 00081 00082 /** 00083 * @brief AF 2 selection 00084 */ 00085 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 00086 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 00087 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 00088 00089 /** 00090 * @brief AF 3 selection 00091 */ 00092 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */ 00093 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 00094 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 00095 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 00096 00097 /** 00098 * @brief AF 4 selection 00099 */ 00100 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 00101 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 00102 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 00103 00104 /** 00105 * @brief AF 5 selection 00106 */ 00107 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */ 00108 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 00109 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */ 00110 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */ 00111 #define GPIO_AF5_SPI5 ((uint8_t)0x05) /* SPI5 Alternate Function mapping */ 00112 #define GPIO_AF5_SPI6 ((uint8_t)0x05) /* SPI6 Alternate Function mapping */ 00113 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */ 00114 00115 /** 00116 * @brief AF 6 selection 00117 */ 00118 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 00119 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */ 00120 #define GPIO_AF6_SAI1 ((uint8_t)0x06) /* SAI1 Alternate Function mapping */ 00121 00122 /** 00123 * @brief AF 7 selection 00124 */ 00125 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 00126 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 00127 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */ 00128 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */ 00129 00130 /** 00131 * @brief AF 8 selection 00132 */ 00133 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */ 00134 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */ 00135 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 00136 #define GPIO_AF8_UART7 ((uint8_t)0x08) /* UART7 Alternate Function mapping */ 00137 #define GPIO_AF8_UART8 ((uint8_t)0x08) /* UART8 Alternate Function mapping */ 00138 00139 /** 00140 * @brief AF 9 selection 00141 */ 00142 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 00143 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */ 00144 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */ 00145 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */ 00146 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 00147 #define GPIO_AF9_LTDC ((uint8_t)0x09) /* LCD-TFT Alternate Function mapping */ 00148 00149 /** 00150 * @brief AF 10 selection 00151 */ 00152 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 00153 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */ 00154 00155 /** 00156 * @brief AF 11 selection 00157 */ 00158 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */ 00159 00160 /** 00161 * @brief AF 12 selection 00162 */ 00163 #define GPIO_AF12_FMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */ 00164 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */ 00165 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 00166 00167 /** 00168 * @brief AF 13 selection 00169 */ 00170 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */ 00171 00172 /** 00173 * @brief AF 14 selection 00174 */ 00175 #define GPIO_AF14_LTDC ((uint8_t)0x0E) /* LCD-TFT Alternate Function mapping */ 00176 00177 /** 00178 * @brief AF 15 selection 00179 */ 00180 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 00181 #endif /* STM32F429xx || STM32F439xx */ 00182 /*----------------------------------------------------------------------------*/ 00183 00184 /*---------------------------------- STM32F427xx/STM32F437xx------------------*/ 00185 #if defined(STM32F427xx) || defined(STM32F437xx) 00186 /** 00187 * @brief AF 0 selection 00188 */ 00189 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 00190 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 00191 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 00192 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 00193 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 00194 00195 /** 00196 * @brief AF 1 selection 00197 */ 00198 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 00199 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 00200 00201 /** 00202 * @brief AF 2 selection 00203 */ 00204 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 00205 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 00206 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 00207 00208 /** 00209 * @brief AF 3 selection 00210 */ 00211 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */ 00212 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 00213 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 00214 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 00215 00216 /** 00217 * @brief AF 4 selection 00218 */ 00219 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 00220 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 00221 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 00222 00223 /** 00224 * @brief AF 5 selection 00225 */ 00226 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */ 00227 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 00228 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */ 00229 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */ 00230 #define GPIO_AF5_SPI5 ((uint8_t)0x05) /* SPI5 Alternate Function mapping */ 00231 #define GPIO_AF5_SPI6 ((uint8_t)0x05) /* SPI6 Alternate Function mapping */ 00232 /** @brief GPIO_Legacy 00233 */ 00234 #define GPIO_AF5_I2S3ext GPIO_AF5_SPI3 /* I2S3ext_SD Alternate Function mapping */ 00235 00236 /** 00237 * @brief AF 6 selection 00238 */ 00239 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 00240 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */ 00241 #define GPIO_AF6_SAI1 ((uint8_t)0x06) /* SAI1 Alternate Function mapping */ 00242 00243 /** 00244 * @brief AF 7 selection 00245 */ 00246 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 00247 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 00248 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */ 00249 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */ 00250 00251 /** 00252 * @brief AF 8 selection 00253 */ 00254 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */ 00255 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */ 00256 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 00257 #define GPIO_AF8_UART7 ((uint8_t)0x08) /* UART7 Alternate Function mapping */ 00258 #define GPIO_AF8_UART8 ((uint8_t)0x08) /* UART8 Alternate Function mapping */ 00259 00260 /** 00261 * @brief AF 9 selection 00262 */ 00263 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 00264 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */ 00265 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */ 00266 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */ 00267 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 00268 00269 /** 00270 * @brief AF 10 selection 00271 */ 00272 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 00273 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */ 00274 00275 /** 00276 * @brief AF 11 selection 00277 */ 00278 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */ 00279 00280 /** 00281 * @brief AF 12 selection 00282 */ 00283 #define GPIO_AF12_FMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */ 00284 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */ 00285 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 00286 00287 /** 00288 * @brief AF 13 selection 00289 */ 00290 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */ 00291 00292 /** 00293 * @brief AF 15 selection 00294 */ 00295 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 00296 #endif /* STM32F427xx || STM32F437xx */ 00297 /*----------------------------------------------------------------------------*/ 00298 00299 /*---------------------------------- STM32F407xx/STM32F417xx------------------*/ 00300 #if defined(STM32F407xx) || defined(STM32F417xx) 00301 /** 00302 * @brief AF 0 selection 00303 */ 00304 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 00305 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 00306 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 00307 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 00308 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 00309 00310 /** 00311 * @brief AF 1 selection 00312 */ 00313 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 00314 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 00315 00316 /** 00317 * @brief AF 2 selection 00318 */ 00319 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 00320 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 00321 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 00322 00323 /** 00324 * @brief AF 3 selection 00325 */ 00326 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */ 00327 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 00328 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 00329 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 00330 00331 /** 00332 * @brief AF 4 selection 00333 */ 00334 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 00335 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 00336 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 00337 00338 /** 00339 * @brief AF 5 selection 00340 */ 00341 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */ 00342 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 00343 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */ 00344 00345 /** 00346 * @brief AF 6 selection 00347 */ 00348 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 00349 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */ 00350 00351 /** 00352 * @brief AF 7 selection 00353 */ 00354 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 00355 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 00356 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */ 00357 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */ 00358 00359 /** 00360 * @brief AF 8 selection 00361 */ 00362 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */ 00363 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */ 00364 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 00365 00366 /** 00367 * @brief AF 9 selection 00368 */ 00369 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 00370 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */ 00371 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */ 00372 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */ 00373 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 00374 00375 /** 00376 * @brief AF 10 selection 00377 */ 00378 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 00379 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */ 00380 00381 /** 00382 * @brief AF 11 selection 00383 */ 00384 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */ 00385 00386 /** 00387 * @brief AF 12 selection 00388 */ 00389 #define GPIO_AF12_FSMC ((uint8_t)0x0C) /* FSMC Alternate Function mapping */ 00390 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */ 00391 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 00392 00393 /** 00394 * @brief AF 13 selection 00395 */ 00396 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */ 00397 00398 /** 00399 * @brief AF 15 selection 00400 */ 00401 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 00402 #endif /* STM32F407xx || STM32F417xx */ 00403 /*----------------------------------------------------------------------------*/ 00404 00405 /*---------------------------------- STM32F405xx/STM32F415xx------------------*/ 00406 #if defined(STM32F405xx) || defined(STM32F415xx) 00407 /** 00408 * @brief AF 0 selection 00409 */ 00410 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 00411 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 00412 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 00413 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 00414 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 00415 00416 /** 00417 * @brief AF 1 selection 00418 */ 00419 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 00420 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 00421 00422 /** 00423 * @brief AF 2 selection 00424 */ 00425 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 00426 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 00427 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 00428 00429 /** 00430 * @brief AF 3 selection 00431 */ 00432 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */ 00433 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 00434 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 00435 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 00436 00437 /** 00438 * @brief AF 4 selection 00439 */ 00440 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 00441 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 00442 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 00443 00444 /** 00445 * @brief AF 5 selection 00446 */ 00447 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */ 00448 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 00449 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */ 00450 00451 /** 00452 * @brief AF 6 selection 00453 */ 00454 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 00455 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */ 00456 00457 /** 00458 * @brief AF 7 selection 00459 */ 00460 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 00461 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 00462 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */ 00463 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */ 00464 00465 /** 00466 * @brief AF 8 selection 00467 */ 00468 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */ 00469 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */ 00470 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 00471 00472 /** 00473 * @brief AF 9 selection 00474 */ 00475 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 00476 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */ 00477 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */ 00478 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */ 00479 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 00480 00481 /** 00482 * @brief AF 10 selection 00483 */ 00484 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 00485 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */ 00486 00487 /** 00488 * @brief AF 12 selection 00489 */ 00490 #define GPIO_AF12_FSMC ((uint8_t)0x0C) /* FSMC Alternate Function mapping */ 00491 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */ 00492 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 00493 00494 /** 00495 * @brief AF 15 selection 00496 */ 00497 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 00498 #endif /* STM32F405xx || STM32F415xx */ 00499 00500 /*----------------------------------------------------------------------------*/ 00501 00502 /*---------------------------------------- STM32F401xx------------------------*/ 00503 #if defined(STM32F401xC) || defined(STM32F401xE) 00504 /** 00505 * @brief AF 0 selection 00506 */ 00507 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 00508 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 00509 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 00510 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 00511 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 00512 00513 /** 00514 * @brief AF 1 selection 00515 */ 00516 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 00517 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 00518 00519 /** 00520 * @brief AF 2 selection 00521 */ 00522 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 00523 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 00524 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 00525 00526 /** 00527 * @brief AF 3 selection 00528 */ 00529 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 00530 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 00531 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 00532 00533 /** 00534 * @brief AF 4 selection 00535 */ 00536 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 00537 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 00538 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 00539 00540 /** 00541 * @brief AF 5 selection 00542 */ 00543 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */ 00544 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 00545 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */ 00546 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */ 00547 00548 /** 00549 * @brief AF 6 selection 00550 */ 00551 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 00552 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */ 00553 00554 /** 00555 * @brief AF 7 selection 00556 */ 00557 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 00558 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 00559 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */ 00560 00561 /** 00562 * @brief AF 8 selection 00563 */ 00564 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 00565 00566 /** 00567 * @brief AF 9 selection 00568 */ 00569 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 00570 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */ 00571 #define GPIO_AF9_I2C3 ((uint8_t)0x09) /* I2C3 Alternate Function mapping */ 00572 00573 00574 /** 00575 * @brief AF 10 selection 00576 */ 00577 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 00578 00579 /** 00580 * @brief AF 12 selection 00581 */ 00582 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 00583 00584 /** 00585 * @brief AF 15 selection 00586 */ 00587 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 00588 #endif /* STM32F401xC || STM32F401xE */ 00589 /*----------------------------------------------------------------------------*/ 00590 00591 /*--------------- STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-------------*/ 00592 #if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) 00593 /** 00594 * @brief AF 0 selection 00595 */ 00596 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 00597 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 00598 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 00599 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 00600 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 00601 00602 /** 00603 * @brief AF 1 selection 00604 */ 00605 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 00606 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 00607 00608 /** 00609 * @brief AF 2 selection 00610 */ 00611 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 00612 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 00613 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 00614 00615 /** 00616 * @brief AF 3 selection 00617 */ 00618 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */ 00619 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 00620 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 00621 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 00622 00623 /** 00624 * @brief AF 4 selection 00625 */ 00626 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 00627 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 00628 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 00629 #define GPIO_AF4_FMPI2C1 ((uint8_t)0x04) /* FMPI2C1 Alternate Function mapping */ 00630 00631 /** 00632 * @brief AF 5 selection 00633 */ 00634 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */ 00635 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 00636 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */ 00637 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4/I2S4 Alternate Function mapping */ 00638 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */ 00639 00640 /** 00641 * @brief AF 6 selection 00642 */ 00643 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* I2S2 Alternate Function mapping */ 00644 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 00645 #define GPIO_AF6_SPI4 ((uint8_t)0x06) /* SPI4/I2S4 Alternate Function mapping */ 00646 #define GPIO_AF6_SPI5 ((uint8_t)0x06) /* SPI5/I2S5 Alternate Function mapping */ 00647 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */ 00648 #define GPIO_AF6_DFSDM1 ((uint8_t)0x06) /* DFSDM1 Alternate Function mapping */ 00649 /** 00650 * @brief AF 7 selection 00651 */ 00652 #define GPIO_AF7_SPI3 ((uint8_t)0x07) /* SPI3/I2S3 Alternate Function mapping */ 00653 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 00654 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 00655 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */ 00656 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */ 00657 00658 /** 00659 * @brief AF 8 selection 00660 */ 00661 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 00662 #define GPIO_AF8_USART3 ((uint8_t)0x08) /* USART3 Alternate Function mapping */ 00663 #define GPIO_AF8_DFSDM1 ((uint8_t)0x08) /* DFSDM1 Alternate Function mapping */ 00664 #define GPIO_AF8_CAN1 ((uint8_t)0x08) /* CAN1 Alternate Function mapping */ 00665 00666 /** 00667 * @brief AF 9 selection 00668 */ 00669 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */ 00670 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */ 00671 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 00672 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */ 00673 #define GPIO_AF9_I2C3 ((uint8_t)0x09) /* I2C3 Alternate Function mapping */ 00674 #define GPIO_AF9_FMPI2C1 ((uint8_t)0x09) /* FMPI2C1 Alternate Function mapping */ 00675 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 00676 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 00677 #define GPIO_AF9_QSPI ((uint8_t)0x09) /* QSPI Alternate Function mapping */ 00678 00679 /** 00680 * @brief AF 10 selection 00681 */ 00682 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 00683 #define GPIO_AF10_DFSDM1 ((uint8_t)0x0A) /* DFSDM1 Alternate Function mapping */ 00684 #define GPIO_AF10_QSPI ((uint8_t)0x0A) /* QSPI Alternate Function mapping */ 00685 #define GPIO_AF10_FMC ((uint8_t)0x0A) /* FMC Alternate Function mapping */ 00686 00687 /** 00688 * @brief AF 12 selection 00689 */ 00690 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 00691 #define GPIO_AF12_FSMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */ 00692 00693 /** 00694 * @brief AF 15 selection 00695 */ 00696 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 00697 #endif /* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */ 00698 00699 /*----------------------------------------------------------------------------*/ 00700 00701 /*--------------- STM32F413xx/STM32F423xx-------------------------------------*/ 00702 #if defined(STM32F413xx) || defined(STM32F423xx) 00703 /** 00704 * @brief AF 0 selection 00705 */ 00706 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 00707 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 00708 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 00709 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 00710 00711 /** 00712 * @brief AF 1 selection 00713 */ 00714 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 00715 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 00716 #define GPIO_AF1_LPTIM1 ((uint8_t)0x01) /* LPTIM1 Alternate Function mapping */ 00717 00718 /** 00719 * @brief AF 2 selection 00720 */ 00721 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 00722 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 00723 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 00724 00725 /** 00726 * @brief AF 3 selection 00727 */ 00728 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */ 00729 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 00730 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 00731 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 00732 #define GPIO_AF3_DFSDM2 ((uint8_t)0x03) /* DFSDM2 Alternate Function mapping */ 00733 00734 /** 00735 * @brief AF 4 selection 00736 */ 00737 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 00738 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 00739 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 00740 #define GPIO_AF4_FMPI2C1 ((uint8_t)0x04) /* FMPI2C1 Alternate Function mapping */ 00741 00742 /** 00743 * @brief AF 5 selection 00744 */ 00745 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */ 00746 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 00747 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */ 00748 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4/I2S4 Alternate Function mapping */ 00749 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */ 00750 00751 /** 00752 * @brief AF 6 selection 00753 */ 00754 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* I2S2 Alternate Function mapping */ 00755 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 00756 #define GPIO_AF6_SPI4 ((uint8_t)0x06) /* SPI4/I2S4 Alternate Function mapping */ 00757 #define GPIO_AF6_SPI5 ((uint8_t)0x06) /* SPI5/I2S5 Alternate Function mapping */ 00758 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */ 00759 #define GPIO_AF6_DFSDM1 ((uint8_t)0x06) /* DFSDM1 Alternate Function mapping */ 00760 #define GPIO_AF6_DFSDM2 ((uint8_t)0x06) /* DFSDM2 Alternate Function mapping */ 00761 /** 00762 * @brief AF 7 selection 00763 */ 00764 #define GPIO_AF7_SPI3 ((uint8_t)0x07) /* SPI3/I2S3 Alternate Function mapping */ 00765 #define GPIO_AF7_SAI1 ((uint8_t)0x07) /* SAI1 Alternate Function mapping */ 00766 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 00767 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 00768 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */ 00769 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */ 00770 #define GPIO_AF7_DFSDM2 ((uint8_t)0x07) /* DFSDM2 Alternate Function mapping */ 00771 00772 /** 00773 * @brief AF 8 selection 00774 */ 00775 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 00776 #define GPIO_AF8_USART3 ((uint8_t)0x08) /* USART3 Alternate Function mapping */ 00777 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */ 00778 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */ 00779 #define GPIO_AF8_UART7 ((uint8_t)0x08) /* UART8 Alternate Function mapping */ 00780 #define GPIO_AF8_UART8 ((uint8_t)0x08) /* UART8 Alternate Function mapping */ 00781 #define GPIO_AF8_DFSDM1 ((uint8_t)0x08) /* DFSDM1 Alternate Function mapping */ 00782 #define GPIO_AF8_CAN1 ((uint8_t)0x08) /* CAN1 Alternate Function mapping */ 00783 00784 /** 00785 * @brief AF 9 selection 00786 */ 00787 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */ 00788 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */ 00789 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 00790 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */ 00791 #define GPIO_AF9_I2C3 ((uint8_t)0x09) /* I2C3 Alternate Function mapping */ 00792 #define GPIO_AF9_FMPI2C1 ((uint8_t)0x09) /* FMPI2C1 Alternate Function mapping */ 00793 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 00794 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 00795 #define GPIO_AF9_QSPI ((uint8_t)0x09) /* QSPI Alternate Function mapping */ 00796 00797 /** 00798 * @brief AF 10 selection 00799 */ 00800 #define GPIO_AF10_SAI1 ((uint8_t)0x0A) /* SAI1 Alternate Function mapping */ 00801 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 00802 #define GPIO_AF10_DFSDM1 ((uint8_t)0x0A) /* DFSDM1 Alternate Function mapping */ 00803 #define GPIO_AF10_DFSDM2 ((uint8_t)0x0A) /* DFSDM2 Alternate Function mapping */ 00804 #define GPIO_AF10_QSPI ((uint8_t)0x0A) /* QSPI Alternate Function mapping */ 00805 #define GPIO_AF10_FSMC ((uint8_t)0x0A) /* FSMC Alternate Function mapping */ 00806 00807 /** 00808 * @brief AF 11 selection 00809 */ 00810 #define GPIO_AF11_UART4 ((uint8_t)0x0B) /* UART4 Alternate Function mapping */ 00811 #define GPIO_AF11_UART5 ((uint8_t)0x0B) /* UART5 Alternate Function mapping */ 00812 #define GPIO_AF11_UART9 ((uint8_t)0x0B) /* UART9 Alternate Function mapping */ 00813 #define GPIO_AF11_UART10 ((uint8_t)0x0B) /* UART10 Alternate Function mapping */ 00814 #define GPIO_AF11_CAN3 ((uint8_t)0x0B) /* CAN3 Alternate Function mapping */ 00815 00816 /** 00817 * @brief AF 12 selection 00818 */ 00819 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 00820 #define GPIO_AF12_FSMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */ 00821 00822 /** 00823 * @brief AF 14 selection 00824 */ 00825 #define GPIO_AF14_RNG ((uint8_t)0x0E) /* RNG Alternate Function mapping */ 00826 00827 /** 00828 * @brief AF 15 selection 00829 */ 00830 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 00831 #endif /* STM32F413xx || STM32F423xx */ 00832 00833 /*---------------------------------------- STM32F411xx------------------------*/ 00834 #if defined(STM32F411xE) 00835 /** 00836 * @brief AF 0 selection 00837 */ 00838 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 00839 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 00840 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 00841 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 00842 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 00843 00844 /** 00845 * @brief AF 1 selection 00846 */ 00847 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 00848 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 00849 00850 /** 00851 * @brief AF 2 selection 00852 */ 00853 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 00854 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 00855 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 00856 00857 /** 00858 * @brief AF 3 selection 00859 */ 00860 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 00861 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 00862 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 00863 00864 /** 00865 * @brief AF 4 selection 00866 */ 00867 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 00868 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 00869 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 00870 00871 /** 00872 * @brief AF 5 selection 00873 */ 00874 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */ 00875 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 00876 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */ 00877 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */ 00878 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */ 00879 00880 /** 00881 * @brief AF 6 selection 00882 */ 00883 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* I2S2 Alternate Function mapping */ 00884 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 00885 #define GPIO_AF6_SPI4 ((uint8_t)0x06) /* SPI4/I2S4 Alternate Function mapping */ 00886 #define GPIO_AF6_SPI5 ((uint8_t)0x06) /* SPI5/I2S5 Alternate Function mapping */ 00887 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */ 00888 00889 /** 00890 * @brief AF 7 selection 00891 */ 00892 #define GPIO_AF7_SPI3 ((uint8_t)0x07) /* SPI3/I2S3 Alternate Function mapping */ 00893 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 00894 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 00895 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */ 00896 00897 /** 00898 * @brief AF 8 selection 00899 */ 00900 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 00901 00902 /** 00903 * @brief AF 9 selection 00904 */ 00905 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 00906 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */ 00907 #define GPIO_AF9_I2C3 ((uint8_t)0x09) /* I2C3 Alternate Function mapping */ 00908 00909 /** 00910 * @brief AF 10 selection 00911 */ 00912 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 00913 00914 /** 00915 * @brief AF 12 selection 00916 */ 00917 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 00918 00919 /** 00920 * @brief AF 15 selection 00921 */ 00922 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 00923 #endif /* STM32F411xE */ 00924 00925 /*---------------------------------------- STM32F410xx------------------------*/ 00926 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) 00927 /** 00928 * @brief AF 0 selection 00929 */ 00930 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 00931 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 00932 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 00933 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 00934 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 00935 00936 /** 00937 * @brief AF 1 selection 00938 */ 00939 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 00940 #define GPIO_AF1_LPTIM1 ((uint8_t)0x01) /* LPTIM1 Alternate Function mapping */ 00941 00942 /** 00943 * @brief AF 2 selection 00944 */ 00945 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 00946 00947 /** 00948 * @brief AF 3 selection 00949 */ 00950 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 00951 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 00952 00953 /** 00954 * @brief AF 4 selection 00955 */ 00956 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 00957 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 00958 #define GPIO_AF4_FMPI2C1 ((uint8_t)0x04) /* FMPI2C1 Alternate Function mapping */ 00959 00960 /** 00961 * @brief AF 5 selection 00962 */ 00963 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */ 00964 #if defined(STM32F410Cx) || defined(STM32F410Rx) 00965 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 00966 #endif /* STM32F410Cx || STM32F410Rx */ 00967 00968 /** 00969 * @brief AF 6 selection 00970 */ 00971 #define GPIO_AF6_SPI1 ((uint8_t)0x06) /* SPI1 Alternate Function mapping */ 00972 #if defined(STM32F410Cx) || defined(STM32F410Rx) 00973 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* I2S2 Alternate Function mapping */ 00974 #endif /* STM32F410Cx || STM32F410Rx */ 00975 #define GPIO_AF6_SPI5 ((uint8_t)0x06) /* SPI5/I2S5 Alternate Function mapping */ 00976 /** 00977 * @brief AF 7 selection 00978 */ 00979 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 00980 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 00981 00982 /** 00983 * @brief AF 8 selection 00984 */ 00985 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 00986 00987 /** 00988 * @brief AF 9 selection 00989 */ 00990 #define GPIO_AF9_I2C2 ((uint8_t)0x09) /* I2C2 Alternate Function mapping */ 00991 #define GPIO_AF9_FMPI2C1 ((uint8_t)0x09) /* FMPI2C1 Alternate Function mapping */ 00992 00993 /** 00994 * @brief AF 15 selection 00995 */ 00996 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 00997 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */ 00998 00999 /*---------------------------------------- STM32F446xx -----------------------*/ 01000 #if defined(STM32F446xx) 01001 /** 01002 * @brief AF 0 selection 01003 */ 01004 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 01005 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 01006 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 01007 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 01008 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 01009 01010 /** 01011 * @brief AF 1 selection 01012 */ 01013 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 01014 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 01015 01016 /** 01017 * @brief AF 2 selection 01018 */ 01019 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 01020 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 01021 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 01022 01023 /** 01024 * @brief AF 3 selection 01025 */ 01026 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */ 01027 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 01028 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 01029 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 01030 #define GPIO_AF3_CEC ((uint8_t)0x03) /* CEC Alternate Function mapping */ 01031 01032 /** 01033 * @brief AF 4 selection 01034 */ 01035 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 01036 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 01037 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 01038 #define GPIO_AF4_FMPI2C1 ((uint8_t)0x04) /* FMPI2C1 Alternate Function mapping */ 01039 #define GPIO_AF4_CEC ((uint8_t)0x04) /* CEC Alternate Function mapping */ 01040 01041 /** 01042 * @brief AF 5 selection 01043 */ 01044 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1/I2S1 Alternate Function mapping */ 01045 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 01046 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */ 01047 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */ 01048 01049 /** 01050 * @brief AF 6 selection 01051 */ 01052 #define GPIO_AF6_SPI2 ((uint8_t)0x06) /* SPI2/I2S2 Alternate Function mapping */ 01053 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 01054 #define GPIO_AF6_SPI4 ((uint8_t)0x06) /* SPI4 Alternate Function mapping */ 01055 #define GPIO_AF6_SAI1 ((uint8_t)0x06) /* SAI1 Alternate Function mapping */ 01056 01057 /** 01058 * @brief AF 7 selection 01059 */ 01060 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 01061 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 01062 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */ 01063 #define GPIO_AF7_UART5 ((uint8_t)0x07) /* UART5 Alternate Function mapping */ 01064 #define GPIO_AF7_SPI2 ((uint8_t)0x07) /* SPI2/I2S2 Alternate Function mapping */ 01065 #define GPIO_AF7_SPI3 ((uint8_t)0x07) /* SPI3/I2S3 Alternate Function mapping */ 01066 #define GPIO_AF7_SPDIFRX ((uint8_t)0x07) /* SPDIFRX Alternate Function mapping */ 01067 01068 /** 01069 * @brief AF 8 selection 01070 */ 01071 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */ 01072 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */ 01073 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 01074 #define GPIO_AF8_SPDIFRX ((uint8_t)0x08) /* SPDIFRX Alternate Function mapping */ 01075 #define GPIO_AF8_SAI2 ((uint8_t)0x08) /* SAI2 Alternate Function mapping */ 01076 01077 /** 01078 * @brief AF 9 selection 01079 */ 01080 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 01081 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */ 01082 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */ 01083 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */ 01084 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 01085 #define GPIO_AF9_QSPI ((uint8_t)0x09) /* QSPI Alternate Function mapping */ 01086 01087 /** 01088 * @brief AF 10 selection 01089 */ 01090 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 01091 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */ 01092 #define GPIO_AF10_SAI2 ((uint8_t)0x0A) /* SAI2 Alternate Function mapping */ 01093 #define GPIO_AF10_QSPI ((uint8_t)0x0A) /* QSPI Alternate Function mapping */ 01094 01095 /** 01096 * @brief AF 11 selection 01097 */ 01098 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */ 01099 01100 /** 01101 * @brief AF 12 selection 01102 */ 01103 #define GPIO_AF12_FMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */ 01104 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */ 01105 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 01106 01107 /** 01108 * @brief AF 13 selection 01109 */ 01110 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */ 01111 01112 /** 01113 * @brief AF 15 selection 01114 */ 01115 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 01116 01117 #endif /* STM32F446xx */ 01118 /*----------------------------------------------------------------------------*/ 01119 01120 /*-------------------------------- STM32F469xx/STM32F479xx--------------------*/ 01121 #if defined(STM32F469xx) || defined(STM32F479xx) 01122 /** 01123 * @brief AF 0 selection 01124 */ 01125 #define GPIO_AF0_RTC_50Hz ((uint8_t)0x00) /* RTC_50Hz Alternate Function mapping */ 01126 #define GPIO_AF0_MCO ((uint8_t)0x00) /* MCO (MCO1 and MCO2) Alternate Function mapping */ 01127 #define GPIO_AF0_TAMPER ((uint8_t)0x00) /* TAMPER (TAMPER_1 and TAMPER_2) Alternate Function mapping */ 01128 #define GPIO_AF0_SWJ ((uint8_t)0x00) /* SWJ (SWD and JTAG) Alternate Function mapping */ 01129 #define GPIO_AF0_TRACE ((uint8_t)0x00) /* TRACE Alternate Function mapping */ 01130 01131 /** 01132 * @brief AF 1 selection 01133 */ 01134 #define GPIO_AF1_TIM1 ((uint8_t)0x01) /* TIM1 Alternate Function mapping */ 01135 #define GPIO_AF1_TIM2 ((uint8_t)0x01) /* TIM2 Alternate Function mapping */ 01136 01137 /** 01138 * @brief AF 2 selection 01139 */ 01140 #define GPIO_AF2_TIM3 ((uint8_t)0x02) /* TIM3 Alternate Function mapping */ 01141 #define GPIO_AF2_TIM4 ((uint8_t)0x02) /* TIM4 Alternate Function mapping */ 01142 #define GPIO_AF2_TIM5 ((uint8_t)0x02) /* TIM5 Alternate Function mapping */ 01143 01144 /** 01145 * @brief AF 3 selection 01146 */ 01147 #define GPIO_AF3_TIM8 ((uint8_t)0x03) /* TIM8 Alternate Function mapping */ 01148 #define GPIO_AF3_TIM9 ((uint8_t)0x03) /* TIM9 Alternate Function mapping */ 01149 #define GPIO_AF3_TIM10 ((uint8_t)0x03) /* TIM10 Alternate Function mapping */ 01150 #define GPIO_AF3_TIM11 ((uint8_t)0x03) /* TIM11 Alternate Function mapping */ 01151 01152 /** 01153 * @brief AF 4 selection 01154 */ 01155 #define GPIO_AF4_I2C1 ((uint8_t)0x04) /* I2C1 Alternate Function mapping */ 01156 #define GPIO_AF4_I2C2 ((uint8_t)0x04) /* I2C2 Alternate Function mapping */ 01157 #define GPIO_AF4_I2C3 ((uint8_t)0x04) /* I2C3 Alternate Function mapping */ 01158 01159 /** 01160 * @brief AF 5 selection 01161 */ 01162 #define GPIO_AF5_SPI1 ((uint8_t)0x05) /* SPI1 Alternate Function mapping */ 01163 #define GPIO_AF5_SPI2 ((uint8_t)0x05) /* SPI2/I2S2 Alternate Function mapping */ 01164 #define GPIO_AF5_SPI3 ((uint8_t)0x05) /* SPI3/I2S3 Alternate Function mapping */ 01165 #define GPIO_AF5_SPI4 ((uint8_t)0x05) /* SPI4 Alternate Function mapping */ 01166 #define GPIO_AF5_SPI5 ((uint8_t)0x05) /* SPI5 Alternate Function mapping */ 01167 #define GPIO_AF5_SPI6 ((uint8_t)0x05) /* SPI6 Alternate Function mapping */ 01168 #define GPIO_AF5_I2S3ext ((uint8_t)0x05) /* I2S3ext_SD Alternate Function mapping */ 01169 01170 /** 01171 * @brief AF 6 selection 01172 */ 01173 #define GPIO_AF6_SPI3 ((uint8_t)0x06) /* SPI3/I2S3 Alternate Function mapping */ 01174 #define GPIO_AF6_I2S2ext ((uint8_t)0x06) /* I2S2ext_SD Alternate Function mapping */ 01175 #define GPIO_AF6_SAI1 ((uint8_t)0x06) /* SAI1 Alternate Function mapping */ 01176 01177 /** 01178 * @brief AF 7 selection 01179 */ 01180 #define GPIO_AF7_USART1 ((uint8_t)0x07) /* USART1 Alternate Function mapping */ 01181 #define GPIO_AF7_USART2 ((uint8_t)0x07) /* USART2 Alternate Function mapping */ 01182 #define GPIO_AF7_USART3 ((uint8_t)0x07) /* USART3 Alternate Function mapping */ 01183 #define GPIO_AF7_I2S3ext ((uint8_t)0x07) /* I2S3ext_SD Alternate Function mapping */ 01184 01185 /** 01186 * @brief AF 8 selection 01187 */ 01188 #define GPIO_AF8_UART4 ((uint8_t)0x08) /* UART4 Alternate Function mapping */ 01189 #define GPIO_AF8_UART5 ((uint8_t)0x08) /* UART5 Alternate Function mapping */ 01190 #define GPIO_AF8_USART6 ((uint8_t)0x08) /* USART6 Alternate Function mapping */ 01191 #define GPIO_AF8_UART7 ((uint8_t)0x08) /* UART7 Alternate Function mapping */ 01192 #define GPIO_AF8_UART8 ((uint8_t)0x08) /* UART8 Alternate Function mapping */ 01193 01194 /** 01195 * @brief AF 9 selection 01196 */ 01197 #define GPIO_AF9_CAN1 ((uint8_t)0x09) /* CAN1 Alternate Function mapping */ 01198 #define GPIO_AF9_CAN2 ((uint8_t)0x09) /* CAN2 Alternate Function mapping */ 01199 #define GPIO_AF9_TIM12 ((uint8_t)0x09) /* TIM12 Alternate Function mapping */ 01200 #define GPIO_AF9_TIM13 ((uint8_t)0x09) /* TIM13 Alternate Function mapping */ 01201 #define GPIO_AF9_TIM14 ((uint8_t)0x09) /* TIM14 Alternate Function mapping */ 01202 #define GPIO_AF9_LTDC ((uint8_t)0x09) /* LCD-TFT Alternate Function mapping */ 01203 #define GPIO_AF9_QSPI ((uint8_t)0x09) /* QSPI Alternate Function mapping */ 01204 01205 /** 01206 * @brief AF 10 selection 01207 */ 01208 #define GPIO_AF10_OTG_FS ((uint8_t)0x0A) /* OTG_FS Alternate Function mapping */ 01209 #define GPIO_AF10_OTG_HS ((uint8_t)0x0A) /* OTG_HS Alternate Function mapping */ 01210 #define GPIO_AF10_QSPI ((uint8_t)0x0A) /* QSPI Alternate Function mapping */ 01211 01212 /** 01213 * @brief AF 11 selection 01214 */ 01215 #define GPIO_AF11_ETH ((uint8_t)0x0B) /* ETHERNET Alternate Function mapping */ 01216 01217 /** 01218 * @brief AF 12 selection 01219 */ 01220 #define GPIO_AF12_FMC ((uint8_t)0x0C) /* FMC Alternate Function mapping */ 01221 #define GPIO_AF12_OTG_HS_FS ((uint8_t)0x0C) /* OTG HS configured in FS, Alternate Function mapping */ 01222 #define GPIO_AF12_SDIO ((uint8_t)0x0C) /* SDIO Alternate Function mapping */ 01223 01224 /** 01225 * @brief AF 13 selection 01226 */ 01227 #define GPIO_AF13_DCMI ((uint8_t)0x0D) /* DCMI Alternate Function mapping */ 01228 #define GPIO_AF13_DSI ((uint8_t)0x0D) /* DSI Alternate Function mapping */ 01229 01230 /** 01231 * @brief AF 14 selection 01232 */ 01233 #define GPIO_AF14_LTDC ((uint8_t)0x0E) /* LCD-TFT Alternate Function mapping */ 01234 01235 /** 01236 * @brief AF 15 selection 01237 */ 01238 #define GPIO_AF15_EVENTOUT ((uint8_t)0x0F) /* EVENTOUT Alternate Function mapping */ 01239 01240 #endif /* STM32F469xx || STM32F479xx */ 01241 /*----------------------------------------------------------------------------*/ 01242 /** 01243 * @} 01244 */ 01245 01246 /** 01247 * @} 01248 */ 01249 01250 /* Exported macro ------------------------------------------------------------*/ 01251 /** @defgroup GPIOEx_Exported_Macros GPIO Exported Macros 01252 * @{ 01253 */ 01254 /** 01255 * @} 01256 */ 01257 01258 /* Exported functions --------------------------------------------------------*/ 01259 /** @defgroup GPIOEx_Exported_Functions GPIO Exported Functions 01260 * @{ 01261 */ 01262 /** 01263 * @} 01264 */ 01265 01266 /* Private types -------------------------------------------------------------*/ 01267 /* Private variables ---------------------------------------------------------*/ 01268 /* Private constants ---------------------------------------------------------*/ 01269 /** @defgroup GPIOEx_Private_Constants GPIO Private Constants 01270 * @{ 01271 */ 01272 /** 01273 * @} 01274 */ 01275 01276 /* Private macros ------------------------------------------------------------*/ 01277 /** @defgroup GPIOEx_Private_Macros GPIO Private Macros 01278 * @{ 01279 */ 01280 /** @defgroup GPIOEx_Get_Port_Index GPIO Get Port Index 01281 * @{ 01282 */ 01283 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) 01284 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\ 01285 ((__GPIOx__) == (GPIOB))? 1U :\ 01286 ((__GPIOx__) == (GPIOC))? 2U :\ 01287 ((__GPIOx__) == (GPIOD))? 3U :\ 01288 ((__GPIOx__) == (GPIOE))? 4U :\ 01289 ((__GPIOx__) == (GPIOF))? 5U :\ 01290 ((__GPIOx__) == (GPIOG))? 6U :\ 01291 ((__GPIOx__) == (GPIOH))? 7U : 8U) 01292 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx */ 01293 01294 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\ 01295 defined(STM32F469xx) || defined(STM32F479xx) 01296 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\ 01297 ((__GPIOx__) == (GPIOB))? 1U :\ 01298 ((__GPIOx__) == (GPIOC))? 2U :\ 01299 ((__GPIOx__) == (GPIOD))? 3U :\ 01300 ((__GPIOx__) == (GPIOE))? 4U :\ 01301 ((__GPIOx__) == (GPIOF))? 5U :\ 01302 ((__GPIOx__) == (GPIOG))? 6U :\ 01303 ((__GPIOx__) == (GPIOH))? 7U :\ 01304 ((__GPIOx__) == (GPIOI))? 8U :\ 01305 ((__GPIOx__) == (GPIOJ))? 9U : 10U) 01306 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ 01307 01308 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) 01309 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\ 01310 ((__GPIOx__) == (GPIOB))? 1U :\ 01311 ((__GPIOx__) == (GPIOC))? 2U : 7U) 01312 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */ 01313 01314 #if defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE) 01315 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\ 01316 ((__GPIOx__) == (GPIOB))? 1U :\ 01317 ((__GPIOx__) == (GPIOC))? 2U :\ 01318 ((__GPIOx__) == (GPIOD))? 3U :\ 01319 ((__GPIOx__) == (GPIOE))? 4U : 7U) 01320 #endif /* STM32F401xC || STM32F401xE || STM32F411xE */ 01321 01322 #if defined(STM32F446xx) || defined(STM32F412Zx) ||defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) || defined(STM32F413xx) || defined(STM32F423xx) 01323 #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\ 01324 ((__GPIOx__) == (GPIOB))? 1U :\ 01325 ((__GPIOx__) == (GPIOC))? 2U :\ 01326 ((__GPIOx__) == (GPIOD))? 3U :\ 01327 ((__GPIOx__) == (GPIOE))? 4U :\ 01328 ((__GPIOx__) == (GPIOF))? 5U :\ 01329 ((__GPIOx__) == (GPIOG))? 6U : 7U) 01330 #endif /* STM32F446xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx || STM32F413xx || STM32F423xx */ 01331 01332 /** 01333 * @} 01334 */ 01335 01336 /** @defgroup GPIOEx_IS_Alternat_function_selection GPIO Check Alternate Function 01337 * @{ 01338 */ 01339 /*------------------------- STM32F429xx/STM32F439xx---------------------------*/ 01340 #if defined(STM32F429xx) || defined(STM32F439xx) 01341 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \ 01342 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \ 01343 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ 01344 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \ 01345 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \ 01346 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \ 01347 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \ 01348 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \ 01349 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \ 01350 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \ 01351 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \ 01352 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \ 01353 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \ 01354 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \ 01355 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \ 01356 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \ 01357 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \ 01358 ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \ 01359 ((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \ 01360 ((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \ 01361 ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \ 01362 ((AF) == GPIO_AF14_LTDC)) 01363 01364 #endif /* STM32F429xx || STM32F439xx */ 01365 /*----------------------------------------------------------------------------*/ 01366 01367 /*---------------------------------- STM32F427xx/STM32F437xx------------------*/ 01368 #if defined(STM32F427xx) || defined(STM32F437xx) 01369 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \ 01370 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \ 01371 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ 01372 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \ 01373 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \ 01374 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \ 01375 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \ 01376 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \ 01377 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \ 01378 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \ 01379 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \ 01380 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \ 01381 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \ 01382 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \ 01383 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \ 01384 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \ 01385 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \ 01386 ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \ 01387 ((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \ 01388 ((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \ 01389 ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1)) 01390 01391 #endif /* STM32F427xx || STM32F437xx */ 01392 /*----------------------------------------------------------------------------*/ 01393 01394 /*---------------------------------- STM32F407xx/STM32F417xx------------------*/ 01395 #if defined(STM32F407xx) || defined(STM32F417xx) 01396 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \ 01397 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \ 01398 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ 01399 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \ 01400 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \ 01401 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \ 01402 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \ 01403 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \ 01404 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \ 01405 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \ 01406 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \ 01407 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \ 01408 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \ 01409 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \ 01410 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \ 01411 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \ 01412 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \ 01413 ((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT)) 01414 01415 #endif /* STM32F407xx || STM32F417xx */ 01416 /*----------------------------------------------------------------------------*/ 01417 01418 /*---------------------------------- STM32F405xx/STM32F415xx------------------*/ 01419 #if defined(STM32F405xx) || defined(STM32F415xx) 01420 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \ 01421 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \ 01422 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ 01423 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \ 01424 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \ 01425 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \ 01426 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \ 01427 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \ 01428 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \ 01429 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \ 01430 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \ 01431 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \ 01432 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \ 01433 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \ 01434 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \ 01435 ((AF) == GPIO_AF12_OTG_HS_FS) || ((AF) == GPIO_AF12_SDIO) || \ 01436 ((AF) == GPIO_AF12_FSMC) || ((AF) == GPIO_AF15_EVENTOUT)) 01437 01438 #endif /* STM32F405xx || STM32F415xx */ 01439 01440 /*----------------------------------------------------------------------------*/ 01441 01442 /*---------------------------------------- STM32F401xx------------------------*/ 01443 #if defined(STM32F401xC) || defined(STM32F401xE) 01444 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \ 01445 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \ 01446 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ 01447 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \ 01448 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \ 01449 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF4_I2C1) || \ 01450 ((AF) == GPIO_AF4_I2C2) || ((AF) == GPIO_AF4_I2C3) || \ 01451 ((AF) == GPIO_AF5_SPI1) || ((AF) == GPIO_AF5_SPI2) || \ 01452 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF5_SPI4) || \ 01453 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \ 01454 ((AF) == GPIO_AF8_USART6) || ((AF) == GPIO_AF10_OTG_FS) || \ 01455 ((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \ 01456 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF15_EVENTOUT)) 01457 01458 #endif /* STM32F401xC || STM32F401xE */ 01459 /*----------------------------------------------------------------------------*/ 01460 /*---------------------------------------- STM32F410xx------------------------*/ 01461 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx) 01462 #define IS_GPIO_AF(AF) (((AF) < 10U) || ((AF) == 15U)) 01463 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */ 01464 01465 /*---------------------------------------- STM32F411xx------------------------*/ 01466 #if defined(STM32F411xE) 01467 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \ 01468 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \ 01469 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ 01470 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \ 01471 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \ 01472 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF4_I2C1) || \ 01473 ((AF) == GPIO_AF4_I2C2) || ((AF) == GPIO_AF4_I2C3) || \ 01474 ((AF) == GPIO_AF5_SPI1) || ((AF) == GPIO_AF5_SPI2) || \ 01475 ((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI4) || \ 01476 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF5_SPI4) || \ 01477 ((AF) == GPIO_AF6_SPI5) || ((AF) == GPIO_AF7_SPI3) || \ 01478 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \ 01479 ((AF) == GPIO_AF8_USART6) || ((AF) == GPIO_AF10_OTG_FS) || \ 01480 ((AF) == GPIO_AF9_I2C2) || ((AF) == GPIO_AF9_I2C3) || \ 01481 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF15_EVENTOUT)) 01482 01483 #endif /* STM32F411xE */ 01484 /*----------------------------------------------------------------------------*/ 01485 01486 /*----------------------------------------------- STM32F446xx ----------------*/ 01487 #if defined(STM32F446xx) 01488 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \ 01489 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \ 01490 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ 01491 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \ 01492 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \ 01493 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \ 01494 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \ 01495 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \ 01496 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \ 01497 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \ 01498 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \ 01499 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \ 01500 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \ 01501 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \ 01502 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \ 01503 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \ 01504 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \ 01505 ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \ 01506 ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \ 01507 ((AF) == GPIO_AF3_CEC) || ((AF) == GPIO_AF4_CEC) || \ 01508 ((AF) == GPIO_AF5_SPI3) || ((AF) == GPIO_AF6_SPI2) || \ 01509 ((AF) == GPIO_AF6_SPI4) || ((AF) == GPIO_AF7_UART5) || \ 01510 ((AF) == GPIO_AF7_SPI2) || ((AF) == GPIO_AF7_SPI3) || \ 01511 ((AF) == GPIO_AF7_SPDIFRX) || ((AF) == GPIO_AF8_SPDIFRX) || \ 01512 ((AF) == GPIO_AF8_SAI2) || ((AF) == GPIO_AF9_QSPI) || \ 01513 ((AF) == GPIO_AF10_SAI2) || ((AF) == GPIO_AF10_QSPI)) 01514 01515 #endif /* STM32F446xx */ 01516 /*----------------------------------------------------------------------------*/ 01517 01518 /*------------------------------------------- STM32F469xx/STM32F479xx --------*/ 01519 #if defined(STM32F469xx) || defined(STM32F479xx) 01520 #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF9_TIM14) || \ 01521 ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF0_TAMPER) || \ 01522 ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ 01523 ((AF) == GPIO_AF1_TIM1) || ((AF) == GPIO_AF1_TIM2) || \ 01524 ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \ 01525 ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \ 01526 ((AF) == GPIO_AF4_I2C1) || ((AF) == GPIO_AF4_I2C2) || \ 01527 ((AF) == GPIO_AF4_I2C3) || ((AF) == GPIO_AF5_SPI1) || \ 01528 ((AF) == GPIO_AF5_SPI2) || ((AF) == GPIO_AF9_TIM13) || \ 01529 ((AF) == GPIO_AF6_SPI3) || ((AF) == GPIO_AF9_TIM12) || \ 01530 ((AF) == GPIO_AF7_USART1) || ((AF) == GPIO_AF7_USART2) || \ 01531 ((AF) == GPIO_AF7_USART3) || ((AF) == GPIO_AF8_UART4) || \ 01532 ((AF) == GPIO_AF8_UART5) || ((AF) == GPIO_AF8_USART6) || \ 01533 ((AF) == GPIO_AF9_CAN1) || ((AF) == GPIO_AF9_CAN2) || \ 01534 ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF10_OTG_HS) || \ 01535 ((AF) == GPIO_AF11_ETH) || ((AF) == GPIO_AF12_OTG_HS_FS) || \ 01536 ((AF) == GPIO_AF12_SDIO) || ((AF) == GPIO_AF13_DCMI) || \ 01537 ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF5_SPI4) || \ 01538 ((AF) == GPIO_AF5_SPI5) || ((AF) == GPIO_AF5_SPI6) || \ 01539 ((AF) == GPIO_AF8_UART7) || ((AF) == GPIO_AF8_UART8) || \ 01540 ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF6_SAI1) || \ 01541 ((AF) == GPIO_AF14_LTDC) || ((AF) == GPIO_AF13_DSI) || \ 01542 ((AF) == GPIO_AF9_QSPI) || ((AF) == GPIO_AF10_QSPI)) 01543 01544 #endif /* STM32F469xx || STM32F479xx */ 01545 /*----------------------------------------------------------------------------*/ 01546 01547 /*------------------STM32F412Zx/STM32F412Vx/STM32F412Rx/STM32F412Cx-----------*/ 01548 #if defined(STM32F412Zx) || defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F412Cx) 01549 #define IS_GPIO_AF(AF) (((AF) < 16U) && ((AF) != 11U) && ((AF) != 14U) && ((AF) != 13U)) 01550 #endif /* STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F412Cx */ 01551 /*----------------------------------------------------------------------------*/ 01552 01553 /*------------------STM32F413xx/STM32F423xx-----------------------------------*/ 01554 #if defined(STM32F413xx) || defined(STM32F423xx) 01555 #define IS_GPIO_AF(AF) (((AF) < 16U) && ((AF) != 13U)) 01556 #endif /* STM32F413xx || STM32F423xx */ 01557 /*----------------------------------------------------------------------------*/ 01558 01559 /** 01560 * @} 01561 */ 01562 01563 /** 01564 * @} 01565 */ 01566 01567 /* Private functions ---------------------------------------------------------*/ 01568 /** @defgroup GPIOEx_Private_Functions GPIO Private Functions 01569 * @{ 01570 */ 01571 01572 /** 01573 * @} 01574 */ 01575 01576 /** 01577 * @} 01578 */ 01579 01580 /** 01581 * @} 01582 */ 01583 01584 #ifdef __cplusplus 01585 } 01586 #endif 01587 01588 #endif /* __STM32F4xx_HAL_GPIO_EX_H */ 01589 01590 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/