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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

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

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 172:65be27845400 1 /**
AnnaBridge 172:65be27845400 2 ******************************************************************************
AnnaBridge 172:65be27845400 3 * @file stm32h7xx_ll_gpio.h
AnnaBridge 172:65be27845400 4 * @author MCD Application Team
AnnaBridge 172:65be27845400 5 * @brief Header file of GPIO LL module.
AnnaBridge 172:65be27845400 6 ******************************************************************************
AnnaBridge 172:65be27845400 7 * @attention
AnnaBridge 172:65be27845400 8 *
AnnaBridge 172:65be27845400 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics.
AnnaBridge 172:65be27845400 10 * All rights reserved.</center></h2>
AnnaBridge 172:65be27845400 11 *
AnnaBridge 172:65be27845400 12 * This software component is licensed by ST under BSD 3-Clause license,
AnnaBridge 172:65be27845400 13 * the "License"; You may not use this file except in compliance with the
AnnaBridge 172:65be27845400 14 * License. You may obtain a copy of the License at:
AnnaBridge 172:65be27845400 15 * opensource.org/licenses/BSD-3-Clause
AnnaBridge 172:65be27845400 16 *
AnnaBridge 172:65be27845400 17 ******************************************************************************
AnnaBridge 172:65be27845400 18 */
AnnaBridge 172:65be27845400 19
AnnaBridge 172:65be27845400 20 /* Define to prevent recursive inclusion -------------------------------------*/
AnnaBridge 172:65be27845400 21 #ifndef STM32H7xx_LL_GPIO_H
AnnaBridge 172:65be27845400 22 #define STM32H7xx_LL_GPIO_H
AnnaBridge 172:65be27845400 23
AnnaBridge 172:65be27845400 24 #ifdef __cplusplus
AnnaBridge 172:65be27845400 25 extern "C" {
AnnaBridge 172:65be27845400 26 #endif
AnnaBridge 172:65be27845400 27
AnnaBridge 172:65be27845400 28 /* Includes ------------------------------------------------------------------*/
AnnaBridge 172:65be27845400 29 #include "stm32h7xx.h"
AnnaBridge 172:65be27845400 30
AnnaBridge 172:65be27845400 31 /** @addtogroup STM32H7xx_LL_Driver
AnnaBridge 172:65be27845400 32 * @{
AnnaBridge 172:65be27845400 33 */
AnnaBridge 172:65be27845400 34
AnnaBridge 172:65be27845400 35 #if defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || defined (GPIOF) || defined (GPIOG) || defined (GPIOH) || defined (GPIOI) || defined (GPIOJ) || defined (GPIOK)
AnnaBridge 172:65be27845400 36
AnnaBridge 172:65be27845400 37 /** @defgroup GPIO_LL GPIO
AnnaBridge 172:65be27845400 38 * @{
AnnaBridge 172:65be27845400 39 */
AnnaBridge 172:65be27845400 40
AnnaBridge 172:65be27845400 41 /* Private types -------------------------------------------------------------*/
AnnaBridge 172:65be27845400 42 /* Private variables ---------------------------------------------------------*/
AnnaBridge 172:65be27845400 43 /* Private constants ---------------------------------------------------------*/
AnnaBridge 172:65be27845400 44 /* Private macros ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 45 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 172:65be27845400 46 /** @defgroup GPIO_LL_Private_Macros GPIO Private Macros
AnnaBridge 172:65be27845400 47 * @{
AnnaBridge 172:65be27845400 48 */
AnnaBridge 172:65be27845400 49
AnnaBridge 172:65be27845400 50 /**
AnnaBridge 172:65be27845400 51 * @}
AnnaBridge 172:65be27845400 52 */
AnnaBridge 172:65be27845400 53 #endif /*USE_FULL_LL_DRIVER*/
AnnaBridge 172:65be27845400 54
AnnaBridge 172:65be27845400 55 /* Exported types ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 56 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 172:65be27845400 57 /** @defgroup GPIO_LL_ES_INIT GPIO Exported Init structures
AnnaBridge 172:65be27845400 58 * @{
AnnaBridge 172:65be27845400 59 */
AnnaBridge 172:65be27845400 60
AnnaBridge 172:65be27845400 61 /**
AnnaBridge 172:65be27845400 62 * @brief LL GPIO Init Structure definition
AnnaBridge 172:65be27845400 63 */
AnnaBridge 172:65be27845400 64 typedef struct
AnnaBridge 172:65be27845400 65 {
AnnaBridge 172:65be27845400 66 uint32_t Pin; /*!< Specifies the GPIO pins to be configured.
AnnaBridge 172:65be27845400 67 This parameter can be any value of @ref GPIO_LL_EC_PIN */
AnnaBridge 172:65be27845400 68
AnnaBridge 172:65be27845400 69 uint32_t Mode; /*!< Specifies the operating mode for the selected pins.
AnnaBridge 172:65be27845400 70 This parameter can be a value of @ref GPIO_LL_EC_MODE.
AnnaBridge 172:65be27845400 71
AnnaBridge 172:65be27845400 72 GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinMode().*/
AnnaBridge 172:65be27845400 73
AnnaBridge 172:65be27845400 74 uint32_t Speed; /*!< Specifies the speed for the selected pins.
AnnaBridge 172:65be27845400 75 This parameter can be a value of @ref GPIO_LL_EC_SPEED.
AnnaBridge 172:65be27845400 76
AnnaBridge 172:65be27845400 77 GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinSpeed().*/
AnnaBridge 172:65be27845400 78
AnnaBridge 172:65be27845400 79 uint32_t OutputType; /*!< Specifies the operating output type for the selected pins.
AnnaBridge 172:65be27845400 80 This parameter can be a value of @ref GPIO_LL_EC_OUTPUT.
AnnaBridge 172:65be27845400 81
AnnaBridge 172:65be27845400 82 GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinOutputType().*/
AnnaBridge 172:65be27845400 83
AnnaBridge 172:65be27845400 84 uint32_t Pull; /*!< Specifies the operating Pull-up/Pull down for the selected pins.
AnnaBridge 172:65be27845400 85 This parameter can be a value of @ref GPIO_LL_EC_PULL.
AnnaBridge 172:65be27845400 86
AnnaBridge 172:65be27845400 87 GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetPinPull().*/
AnnaBridge 172:65be27845400 88
AnnaBridge 172:65be27845400 89 uint32_t Alternate; /*!< Specifies the Peripheral to be connected to the selected pins.
AnnaBridge 172:65be27845400 90 This parameter can be a value of @ref GPIO_LL_EC_AF.
AnnaBridge 172:65be27845400 91
AnnaBridge 172:65be27845400 92 GPIO HW configuration can be modified afterwards using unitary function @ref LL_GPIO_SetAFPin_0_7() and LL_GPIO_SetAFPin_8_15().*/
AnnaBridge 172:65be27845400 93 } LL_GPIO_InitTypeDef;
AnnaBridge 172:65be27845400 94
AnnaBridge 172:65be27845400 95 /**
AnnaBridge 172:65be27845400 96 * @}
AnnaBridge 172:65be27845400 97 */
AnnaBridge 172:65be27845400 98 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 172:65be27845400 99
AnnaBridge 172:65be27845400 100 /* Exported constants --------------------------------------------------------*/
AnnaBridge 172:65be27845400 101 /** @defgroup GPIO_LL_Exported_Constants GPIO Exported Constants
AnnaBridge 172:65be27845400 102 * @{
AnnaBridge 172:65be27845400 103 */
AnnaBridge 172:65be27845400 104
AnnaBridge 172:65be27845400 105 /** @defgroup GPIO_LL_EC_PIN PIN
AnnaBridge 172:65be27845400 106 * @{
AnnaBridge 172:65be27845400 107 */
AnnaBridge 172:65be27845400 108 #define LL_GPIO_PIN_0 GPIO_BSRR_BS0 /*!< Select pin 0 */
AnnaBridge 172:65be27845400 109 #define LL_GPIO_PIN_1 GPIO_BSRR_BS1 /*!< Select pin 1 */
AnnaBridge 172:65be27845400 110 #define LL_GPIO_PIN_2 GPIO_BSRR_BS2 /*!< Select pin 2 */
AnnaBridge 172:65be27845400 111 #define LL_GPIO_PIN_3 GPIO_BSRR_BS3 /*!< Select pin 3 */
AnnaBridge 172:65be27845400 112 #define LL_GPIO_PIN_4 GPIO_BSRR_BS4 /*!< Select pin 4 */
AnnaBridge 172:65be27845400 113 #define LL_GPIO_PIN_5 GPIO_BSRR_BS5 /*!< Select pin 5 */
AnnaBridge 172:65be27845400 114 #define LL_GPIO_PIN_6 GPIO_BSRR_BS6 /*!< Select pin 6 */
AnnaBridge 172:65be27845400 115 #define LL_GPIO_PIN_7 GPIO_BSRR_BS7 /*!< Select pin 7 */
AnnaBridge 172:65be27845400 116 #define LL_GPIO_PIN_8 GPIO_BSRR_BS8 /*!< Select pin 8 */
AnnaBridge 172:65be27845400 117 #define LL_GPIO_PIN_9 GPIO_BSRR_BS9 /*!< Select pin 9 */
AnnaBridge 172:65be27845400 118 #define LL_GPIO_PIN_10 GPIO_BSRR_BS10 /*!< Select pin 10 */
AnnaBridge 172:65be27845400 119 #define LL_GPIO_PIN_11 GPIO_BSRR_BS11 /*!< Select pin 11 */
AnnaBridge 172:65be27845400 120 #define LL_GPIO_PIN_12 GPIO_BSRR_BS12 /*!< Select pin 12 */
AnnaBridge 172:65be27845400 121 #define LL_GPIO_PIN_13 GPIO_BSRR_BS13 /*!< Select pin 13 */
AnnaBridge 172:65be27845400 122 #define LL_GPIO_PIN_14 GPIO_BSRR_BS14 /*!< Select pin 14 */
AnnaBridge 172:65be27845400 123 #define LL_GPIO_PIN_15 GPIO_BSRR_BS15 /*!< Select pin 15 */
AnnaBridge 172:65be27845400 124 #define LL_GPIO_PIN_ALL (GPIO_BSRR_BS0 | GPIO_BSRR_BS1 | GPIO_BSRR_BS2 | \
AnnaBridge 172:65be27845400 125 GPIO_BSRR_BS3 | GPIO_BSRR_BS4 | GPIO_BSRR_BS5 | \
AnnaBridge 172:65be27845400 126 GPIO_BSRR_BS6 | GPIO_BSRR_BS7 | GPIO_BSRR_BS8 | \
AnnaBridge 172:65be27845400 127 GPIO_BSRR_BS9 | GPIO_BSRR_BS10 | GPIO_BSRR_BS11 | \
AnnaBridge 172:65be27845400 128 GPIO_BSRR_BS12 | GPIO_BSRR_BS13 | GPIO_BSRR_BS14 | \
AnnaBridge 172:65be27845400 129 GPIO_BSRR_BS15) /*!< Select all pins */
AnnaBridge 172:65be27845400 130 /**
AnnaBridge 172:65be27845400 131 * @}
AnnaBridge 172:65be27845400 132 */
AnnaBridge 172:65be27845400 133
AnnaBridge 172:65be27845400 134 /** @defgroup GPIO_LL_EC_MODE Mode
AnnaBridge 172:65be27845400 135 * @{
AnnaBridge 172:65be27845400 136 */
AnnaBridge 172:65be27845400 137 #define LL_GPIO_MODE_INPUT (0x00000000U) /*!< Select input mode */
AnnaBridge 172:65be27845400 138 #define LL_GPIO_MODE_OUTPUT GPIO_MODER_MODE0_0 /*!< Select output mode */
AnnaBridge 172:65be27845400 139 #define LL_GPIO_MODE_ALTERNATE GPIO_MODER_MODE0_1 /*!< Select alternate function mode */
AnnaBridge 172:65be27845400 140 #define LL_GPIO_MODE_ANALOG GPIO_MODER_MODE0 /*!< Select analog mode */
AnnaBridge 172:65be27845400 141 /**
AnnaBridge 172:65be27845400 142 * @}
AnnaBridge 172:65be27845400 143 */
AnnaBridge 172:65be27845400 144
AnnaBridge 172:65be27845400 145 /** @defgroup GPIO_LL_EC_OUTPUT Output Type
AnnaBridge 172:65be27845400 146 * @{
AnnaBridge 172:65be27845400 147 */
AnnaBridge 172:65be27845400 148 #define LL_GPIO_OUTPUT_PUSHPULL (0x00000000U) /*!< Select push-pull as output type */
AnnaBridge 172:65be27845400 149 #define LL_GPIO_OUTPUT_OPENDRAIN GPIO_OTYPER_OT0 /*!< Select open-drain as output type */
AnnaBridge 172:65be27845400 150 /**
AnnaBridge 172:65be27845400 151 * @}
AnnaBridge 172:65be27845400 152 */
AnnaBridge 172:65be27845400 153
AnnaBridge 172:65be27845400 154 /** @defgroup GPIO_LL_EC_SPEED Output Speed
AnnaBridge 172:65be27845400 155 * @{
AnnaBridge 172:65be27845400 156 */
AnnaBridge 172:65be27845400 157 #define LL_GPIO_SPEED_FREQ_LOW (0x00000000U) /*!< Select I/O low output speed */
AnnaBridge 172:65be27845400 158 #define LL_GPIO_SPEED_FREQ_MEDIUM GPIO_OSPEEDR_OSPEED0_0 /*!< Select I/O medium output speed */
AnnaBridge 172:65be27845400 159 #define LL_GPIO_SPEED_FREQ_HIGH GPIO_OSPEEDR_OSPEED0_1 /*!< Select I/O fast output speed */
AnnaBridge 172:65be27845400 160 #define LL_GPIO_SPEED_FREQ_VERY_HIGH GPIO_OSPEEDR_OSPEED0 /*!< Select I/O high output speed */
AnnaBridge 172:65be27845400 161 /**
AnnaBridge 172:65be27845400 162 * @}
AnnaBridge 172:65be27845400 163 */
AnnaBridge 172:65be27845400 164 #define LL_GPIO_SPEED_LOW LL_GPIO_SPEED_FREQ_LOW
AnnaBridge 172:65be27845400 165 #define LL_GPIO_SPEED_MEDIUM LL_GPIO_SPEED_FREQ_MEDIUM
AnnaBridge 172:65be27845400 166 #define LL_GPIO_SPEED_FAST LL_GPIO_SPEED_FREQ_HIGH
AnnaBridge 172:65be27845400 167 #define LL_GPIO_SPEED_HIGH LL_GPIO_SPEED_FREQ_VERY_HIGH
AnnaBridge 172:65be27845400 168
AnnaBridge 172:65be27845400 169
AnnaBridge 172:65be27845400 170 /** @defgroup GPIO_LL_EC_PULL Pull Up Pull Down
AnnaBridge 172:65be27845400 171 * @{
AnnaBridge 172:65be27845400 172 */
AnnaBridge 172:65be27845400 173 #define LL_GPIO_PULL_NO (0x00000000U) /*!< Select I/O no pull */
AnnaBridge 172:65be27845400 174 #define LL_GPIO_PULL_UP GPIO_PUPDR_PUPD0_0 /*!< Select I/O pull up */
AnnaBridge 172:65be27845400 175 #define LL_GPIO_PULL_DOWN GPIO_PUPDR_PUPD0_1 /*!< Select I/O pull down */
AnnaBridge 172:65be27845400 176 /**
AnnaBridge 172:65be27845400 177 * @}
AnnaBridge 172:65be27845400 178 */
AnnaBridge 172:65be27845400 179
AnnaBridge 172:65be27845400 180 /** @defgroup GPIO_LL_EC_AF Alternate Function
AnnaBridge 172:65be27845400 181 * @{
AnnaBridge 172:65be27845400 182 */
AnnaBridge 172:65be27845400 183 #define LL_GPIO_AF_0 (0x0000000U) /*!< Select alternate function 0 */
AnnaBridge 172:65be27845400 184 #define LL_GPIO_AF_1 (0x0000001U) /*!< Select alternate function 1 */
AnnaBridge 172:65be27845400 185 #define LL_GPIO_AF_2 (0x0000002U) /*!< Select alternate function 2 */
AnnaBridge 172:65be27845400 186 #define LL_GPIO_AF_3 (0x0000003U) /*!< Select alternate function 3 */
AnnaBridge 172:65be27845400 187 #define LL_GPIO_AF_4 (0x0000004U) /*!< Select alternate function 4 */
AnnaBridge 172:65be27845400 188 #define LL_GPIO_AF_5 (0x0000005U) /*!< Select alternate function 5 */
AnnaBridge 172:65be27845400 189 #define LL_GPIO_AF_6 (0x0000006U) /*!< Select alternate function 6 */
AnnaBridge 172:65be27845400 190 #define LL_GPIO_AF_7 (0x0000007U) /*!< Select alternate function 7 */
AnnaBridge 172:65be27845400 191 #define LL_GPIO_AF_8 (0x0000008U) /*!< Select alternate function 8 */
AnnaBridge 172:65be27845400 192 #define LL_GPIO_AF_9 (0x0000009U) /*!< Select alternate function 9 */
AnnaBridge 172:65be27845400 193 #define LL_GPIO_AF_10 (0x000000AU) /*!< Select alternate function 10 */
AnnaBridge 172:65be27845400 194 #define LL_GPIO_AF_11 (0x000000BU) /*!< Select alternate function 11 */
AnnaBridge 172:65be27845400 195 #define LL_GPIO_AF_12 (0x000000CU) /*!< Select alternate function 12 */
AnnaBridge 172:65be27845400 196 #define LL_GPIO_AF_13 (0x000000DU) /*!< Select alternate function 13 */
AnnaBridge 172:65be27845400 197 #define LL_GPIO_AF_14 (0x000000EU) /*!< Select alternate function 14 */
AnnaBridge 172:65be27845400 198 #define LL_GPIO_AF_15 (0x000000FU) /*!< Select alternate function 15 */
AnnaBridge 172:65be27845400 199 /**
AnnaBridge 172:65be27845400 200 * @}
AnnaBridge 172:65be27845400 201 */
AnnaBridge 172:65be27845400 202
AnnaBridge 172:65be27845400 203 /**
AnnaBridge 172:65be27845400 204 * @}
AnnaBridge 172:65be27845400 205 */
AnnaBridge 172:65be27845400 206
AnnaBridge 172:65be27845400 207 /* Exported macro ------------------------------------------------------------*/
AnnaBridge 172:65be27845400 208 /** @defgroup GPIO_LL_Exported_Macros GPIO Exported Macros
AnnaBridge 172:65be27845400 209 * @{
AnnaBridge 172:65be27845400 210 */
AnnaBridge 172:65be27845400 211
AnnaBridge 172:65be27845400 212 /** @defgroup GPIO_LL_EM_WRITE_READ Common Write and read registers Macros
AnnaBridge 172:65be27845400 213 * @{
AnnaBridge 172:65be27845400 214 */
AnnaBridge 172:65be27845400 215
AnnaBridge 172:65be27845400 216 /**
AnnaBridge 172:65be27845400 217 * @brief Write a value in GPIO register
AnnaBridge 172:65be27845400 218 * @param __INSTANCE__ GPIO Instance
AnnaBridge 172:65be27845400 219 * @param __REG__ Register to be written
AnnaBridge 172:65be27845400 220 * @param __VALUE__ Value to be written in the register
AnnaBridge 172:65be27845400 221 * @retval None
AnnaBridge 172:65be27845400 222 */
AnnaBridge 172:65be27845400 223 #define LL_GPIO_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
AnnaBridge 172:65be27845400 224
AnnaBridge 172:65be27845400 225 /**
AnnaBridge 172:65be27845400 226 * @brief Read a value in GPIO register
AnnaBridge 172:65be27845400 227 * @param __INSTANCE__ GPIO Instance
AnnaBridge 172:65be27845400 228 * @param __REG__ Register to be read
AnnaBridge 172:65be27845400 229 * @retval Register value
AnnaBridge 172:65be27845400 230 */
AnnaBridge 172:65be27845400 231 #define LL_GPIO_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
AnnaBridge 172:65be27845400 232 /**
AnnaBridge 172:65be27845400 233 * @}
AnnaBridge 172:65be27845400 234 */
AnnaBridge 172:65be27845400 235
AnnaBridge 172:65be27845400 236 /**
AnnaBridge 172:65be27845400 237 * @}
AnnaBridge 172:65be27845400 238 */
AnnaBridge 172:65be27845400 239
AnnaBridge 172:65be27845400 240 /* Exported functions --------------------------------------------------------*/
AnnaBridge 172:65be27845400 241 /** @defgroup GPIO_LL_Exported_Functions GPIO Exported Functions
AnnaBridge 172:65be27845400 242 * @{
AnnaBridge 172:65be27845400 243 */
AnnaBridge 172:65be27845400 244
AnnaBridge 172:65be27845400 245 /** @defgroup GPIO_LL_EF_Port_Configuration Port Configuration
AnnaBridge 172:65be27845400 246 * @{
AnnaBridge 172:65be27845400 247 */
AnnaBridge 172:65be27845400 248
AnnaBridge 172:65be27845400 249 /**
AnnaBridge 172:65be27845400 250 * @brief Configure gpio mode for a dedicated pin on dedicated port.
AnnaBridge 172:65be27845400 251 * @note I/O mode can be Input mode, General purpose output, Alternate function mode or Analog.
AnnaBridge 172:65be27845400 252 * @note Warning: only one pin can be passed as parameter.
AnnaBridge 172:65be27845400 253 * @rmtoll MODER MODEy LL_GPIO_SetPinMode
AnnaBridge 172:65be27845400 254 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 255 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 256 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 257 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 258 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 259 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 260 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 261 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 262 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 263 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 264 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 265 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 266 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 267 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 268 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 269 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 270 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 271 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 272 * @param Mode This parameter can be one of the following values:
AnnaBridge 172:65be27845400 273 * @arg @ref LL_GPIO_MODE_INPUT
AnnaBridge 172:65be27845400 274 * @arg @ref LL_GPIO_MODE_OUTPUT
AnnaBridge 172:65be27845400 275 * @arg @ref LL_GPIO_MODE_ALTERNATE
AnnaBridge 172:65be27845400 276 * @arg @ref LL_GPIO_MODE_ANALOG
AnnaBridge 172:65be27845400 277 * @retval None
AnnaBridge 172:65be27845400 278 */
AnnaBridge 172:65be27845400 279 __STATIC_INLINE void LL_GPIO_SetPinMode(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Mode)
AnnaBridge 172:65be27845400 280 {
AnnaBridge 172:65be27845400 281 MODIFY_REG(GPIOx->MODER, ((Pin * Pin) * GPIO_MODER_MODE0), ((Pin * Pin) * Mode));
AnnaBridge 172:65be27845400 282 }
AnnaBridge 172:65be27845400 283
AnnaBridge 172:65be27845400 284 /**
AnnaBridge 172:65be27845400 285 * @brief Return gpio mode for a dedicated pin on dedicated port.
AnnaBridge 172:65be27845400 286 * @note I/O mode can be Input mode, General purpose output, Alternate function mode or Analog.
AnnaBridge 172:65be27845400 287 * @note Warning: only one pin can be passed as parameter.
AnnaBridge 172:65be27845400 288 * @rmtoll MODER MODEy LL_GPIO_GetPinMode
AnnaBridge 172:65be27845400 289 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 290 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 291 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 292 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 293 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 294 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 295 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 296 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 297 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 298 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 299 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 300 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 301 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 302 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 303 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 304 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 305 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 306 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 307 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 308 * @arg @ref LL_GPIO_MODE_INPUT
AnnaBridge 172:65be27845400 309 * @arg @ref LL_GPIO_MODE_OUTPUT
AnnaBridge 172:65be27845400 310 * @arg @ref LL_GPIO_MODE_ALTERNATE
AnnaBridge 172:65be27845400 311 * @arg @ref LL_GPIO_MODE_ANALOG
AnnaBridge 172:65be27845400 312 */
AnnaBridge 172:65be27845400 313 __STATIC_INLINE uint32_t LL_GPIO_GetPinMode(GPIO_TypeDef *GPIOx, uint32_t Pin)
AnnaBridge 172:65be27845400 314 {
AnnaBridge 172:65be27845400 315 return (uint32_t)(READ_BIT(GPIOx->MODER, ((Pin * Pin) * GPIO_MODER_MODE0)) / (Pin * Pin));
AnnaBridge 172:65be27845400 316 }
AnnaBridge 172:65be27845400 317
AnnaBridge 172:65be27845400 318 /**
AnnaBridge 172:65be27845400 319 * @brief Configure gpio output type for several pins on dedicated port.
AnnaBridge 172:65be27845400 320 * @note Output type as to be set when gpio pin is in output or
AnnaBridge 172:65be27845400 321 * alternate modes. Possible type are Push-pull or Open-drain.
AnnaBridge 172:65be27845400 322 * @rmtoll OTYPER OTy LL_GPIO_SetPinOutputType
AnnaBridge 172:65be27845400 323 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 324 * @param PinMask This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 325 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 326 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 327 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 328 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 329 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 330 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 331 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 332 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 333 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 334 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 335 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 336 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 337 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 338 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 339 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 340 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 341 * @arg @ref LL_GPIO_PIN_ALL
AnnaBridge 172:65be27845400 342 * @param OutputType This parameter can be one of the following values:
AnnaBridge 172:65be27845400 343 * @arg @ref LL_GPIO_OUTPUT_PUSHPULL
AnnaBridge 172:65be27845400 344 * @arg @ref LL_GPIO_OUTPUT_OPENDRAIN
AnnaBridge 172:65be27845400 345 * @retval None
AnnaBridge 172:65be27845400 346 */
AnnaBridge 172:65be27845400 347 __STATIC_INLINE void LL_GPIO_SetPinOutputType(GPIO_TypeDef *GPIOx, uint32_t PinMask, uint32_t OutputType)
AnnaBridge 172:65be27845400 348 {
AnnaBridge 172:65be27845400 349 MODIFY_REG(GPIOx->OTYPER, PinMask, (PinMask * OutputType));
AnnaBridge 172:65be27845400 350 }
AnnaBridge 172:65be27845400 351
AnnaBridge 172:65be27845400 352 /**
AnnaBridge 172:65be27845400 353 * @brief Return gpio output type for several pins on dedicated port.
AnnaBridge 172:65be27845400 354 * @note Output type as to be set when gpio pin is in output or
AnnaBridge 172:65be27845400 355 * alternate modes. Possible type are Push-pull or Open-drain.
AnnaBridge 172:65be27845400 356 * @note Warning: only one pin can be passed as parameter.
AnnaBridge 172:65be27845400 357 * @rmtoll OTYPER OTy LL_GPIO_GetPinOutputType
AnnaBridge 172:65be27845400 358 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 359 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 360 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 361 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 362 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 363 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 364 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 365 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 366 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 367 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 368 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 369 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 370 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 371 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 372 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 373 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 374 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 375 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 376 * @arg @ref LL_GPIO_PIN_ALL
AnnaBridge 172:65be27845400 377 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 378 * @arg @ref LL_GPIO_OUTPUT_PUSHPULL
AnnaBridge 172:65be27845400 379 * @arg @ref LL_GPIO_OUTPUT_OPENDRAIN
AnnaBridge 172:65be27845400 380 */
AnnaBridge 172:65be27845400 381 __STATIC_INLINE uint32_t LL_GPIO_GetPinOutputType(GPIO_TypeDef *GPIOx, uint32_t Pin)
AnnaBridge 172:65be27845400 382 {
AnnaBridge 172:65be27845400 383 return (uint32_t)(READ_BIT(GPIOx->OTYPER, Pin) / Pin);
AnnaBridge 172:65be27845400 384 }
AnnaBridge 172:65be27845400 385
AnnaBridge 172:65be27845400 386 /**
AnnaBridge 172:65be27845400 387 * @brief Configure gpio speed for a dedicated pin on dedicated port.
AnnaBridge 172:65be27845400 388 * @note I/O speed can be Low, Medium, Fast or High speed.
AnnaBridge 172:65be27845400 389 * @note Warning: only one pin can be passed as parameter.
AnnaBridge 172:65be27845400 390 * @note Refer to datasheet for frequency specifications and the power
AnnaBridge 172:65be27845400 391 * supply and load conditions for each speed.
AnnaBridge 172:65be27845400 392 * @rmtoll OSPEEDR OSPEEDy LL_GPIO_SetPinSpeed
AnnaBridge 172:65be27845400 393 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 394 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 395 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 396 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 397 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 398 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 399 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 400 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 401 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 402 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 403 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 404 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 405 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 406 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 407 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 408 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 409 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 410 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 411 * @param Speed This parameter can be one of the following values:
AnnaBridge 172:65be27845400 412 * @arg @ref LL_GPIO_SPEED_FREQ_LOW
AnnaBridge 172:65be27845400 413 * @arg @ref LL_GPIO_SPEED_FREQ_MEDIUM
AnnaBridge 172:65be27845400 414 * @arg @ref LL_GPIO_SPEED_FREQ_HIGH
AnnaBridge 172:65be27845400 415 * @arg @ref LL_GPIO_SPEED_FREQ_VERY_HIGH
AnnaBridge 172:65be27845400 416 * @retval None
AnnaBridge 172:65be27845400 417 */
AnnaBridge 172:65be27845400 418 __STATIC_INLINE void LL_GPIO_SetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Speed)
AnnaBridge 172:65be27845400 419 {
AnnaBridge 172:65be27845400 420 MODIFY_REG(GPIOx->OSPEEDR, ((Pin * Pin) * GPIO_OSPEEDR_OSPEED0), ((Pin * Pin) * Speed));
AnnaBridge 172:65be27845400 421 }
AnnaBridge 172:65be27845400 422
AnnaBridge 172:65be27845400 423 /**
AnnaBridge 172:65be27845400 424 * @brief Return gpio speed for a dedicated pin on dedicated port.
AnnaBridge 172:65be27845400 425 * @note I/O speed can be Low, Medium, Fast or High speed.
AnnaBridge 172:65be27845400 426 * @note Warning: only one pin can be passed as parameter.
AnnaBridge 172:65be27845400 427 * @note Refer to datasheet for frequency specifications and the power
AnnaBridge 172:65be27845400 428 * supply and load conditions for each speed.
AnnaBridge 172:65be27845400 429 * @rmtoll OSPEEDR OSPEEDy LL_GPIO_GetPinSpeed
AnnaBridge 172:65be27845400 430 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 431 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 432 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 433 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 434 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 435 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 436 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 437 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 438 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 439 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 440 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 441 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 442 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 443 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 444 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 445 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 446 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 447 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 448 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 449 * @arg @ref LL_GPIO_SPEED_FREQ_LOW
AnnaBridge 172:65be27845400 450 * @arg @ref LL_GPIO_SPEED_FREQ_MEDIUM
AnnaBridge 172:65be27845400 451 * @arg @ref LL_GPIO_SPEED_FREQ_HIGH
AnnaBridge 172:65be27845400 452 * @arg @ref LL_GPIO_SPEED_FREQ_VERY_HIGH
AnnaBridge 172:65be27845400 453 */
AnnaBridge 172:65be27845400 454 __STATIC_INLINE uint32_t LL_GPIO_GetPinSpeed(GPIO_TypeDef *GPIOx, uint32_t Pin)
AnnaBridge 172:65be27845400 455 {
AnnaBridge 172:65be27845400 456 return (uint32_t)(READ_BIT(GPIOx->OSPEEDR, ((Pin * Pin) * GPIO_OSPEEDR_OSPEED0)) / (Pin * Pin));
AnnaBridge 172:65be27845400 457 }
AnnaBridge 172:65be27845400 458
AnnaBridge 172:65be27845400 459 /**
AnnaBridge 172:65be27845400 460 * @brief Configure gpio pull-up or pull-down for a dedicated pin on a dedicated port.
AnnaBridge 172:65be27845400 461 * @note Warning: only one pin can be passed as parameter.
AnnaBridge 172:65be27845400 462 * @rmtoll PUPDR PUPDy LL_GPIO_SetPinPull
AnnaBridge 172:65be27845400 463 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 464 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 465 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 466 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 467 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 468 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 469 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 470 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 471 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 472 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 473 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 474 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 475 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 476 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 477 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 478 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 479 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 480 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 481 * @param Pull This parameter can be one of the following values:
AnnaBridge 172:65be27845400 482 * @arg @ref LL_GPIO_PULL_NO
AnnaBridge 172:65be27845400 483 * @arg @ref LL_GPIO_PULL_UP
AnnaBridge 172:65be27845400 484 * @arg @ref LL_GPIO_PULL_DOWN
AnnaBridge 172:65be27845400 485 * @retval None
AnnaBridge 172:65be27845400 486 */
AnnaBridge 172:65be27845400 487 __STATIC_INLINE void LL_GPIO_SetPinPull(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Pull)
AnnaBridge 172:65be27845400 488 {
AnnaBridge 172:65be27845400 489 MODIFY_REG(GPIOx->PUPDR, ((Pin * Pin) * GPIO_PUPDR_PUPD0), ((Pin * Pin) * Pull));
AnnaBridge 172:65be27845400 490 }
AnnaBridge 172:65be27845400 491
AnnaBridge 172:65be27845400 492 /**
AnnaBridge 172:65be27845400 493 * @brief Return gpio pull-up or pull-down for a dedicated pin on a dedicated port
AnnaBridge 172:65be27845400 494 * @note Warning: only one pin can be passed as parameter.
AnnaBridge 172:65be27845400 495 * @rmtoll PUPDR PUPDy LL_GPIO_GetPinPull
AnnaBridge 172:65be27845400 496 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 497 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 498 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 499 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 500 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 501 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 502 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 503 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 504 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 505 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 506 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 507 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 508 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 509 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 510 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 511 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 512 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 513 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 514 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 515 * @arg @ref LL_GPIO_PULL_NO
AnnaBridge 172:65be27845400 516 * @arg @ref LL_GPIO_PULL_UP
AnnaBridge 172:65be27845400 517 * @arg @ref LL_GPIO_PULL_DOWN
AnnaBridge 172:65be27845400 518 */
AnnaBridge 172:65be27845400 519 __STATIC_INLINE uint32_t LL_GPIO_GetPinPull(GPIO_TypeDef *GPIOx, uint32_t Pin)
AnnaBridge 172:65be27845400 520 {
AnnaBridge 172:65be27845400 521 return (uint32_t)(READ_BIT(GPIOx->PUPDR, ((Pin * Pin) * GPIO_PUPDR_PUPD0)) / (Pin * Pin));
AnnaBridge 172:65be27845400 522 }
AnnaBridge 172:65be27845400 523
AnnaBridge 172:65be27845400 524 /**
AnnaBridge 172:65be27845400 525 * @brief Configure gpio alternate function of a dedicated pin from 0 to 7 for a dedicated port.
AnnaBridge 172:65be27845400 526 * @note Possible values are from AF0 to AF15 depending on target.
AnnaBridge 172:65be27845400 527 * @note Warning: only one pin can be passed as parameter.
AnnaBridge 172:65be27845400 528 * @rmtoll AFRL AFSELy LL_GPIO_SetAFPin_0_7
AnnaBridge 172:65be27845400 529 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 530 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 531 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 532 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 533 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 534 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 535 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 536 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 537 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 538 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 539 * @param Alternate This parameter can be one of the following values:
AnnaBridge 172:65be27845400 540 * @arg @ref LL_GPIO_AF_0
AnnaBridge 172:65be27845400 541 * @arg @ref LL_GPIO_AF_1
AnnaBridge 172:65be27845400 542 * @arg @ref LL_GPIO_AF_2
AnnaBridge 172:65be27845400 543 * @arg @ref LL_GPIO_AF_3
AnnaBridge 172:65be27845400 544 * @arg @ref LL_GPIO_AF_4
AnnaBridge 172:65be27845400 545 * @arg @ref LL_GPIO_AF_5
AnnaBridge 172:65be27845400 546 * @arg @ref LL_GPIO_AF_6
AnnaBridge 172:65be27845400 547 * @arg @ref LL_GPIO_AF_7
AnnaBridge 172:65be27845400 548 * @arg @ref LL_GPIO_AF_8
AnnaBridge 172:65be27845400 549 * @arg @ref LL_GPIO_AF_9
AnnaBridge 172:65be27845400 550 * @arg @ref LL_GPIO_AF_10
AnnaBridge 172:65be27845400 551 * @arg @ref LL_GPIO_AF_11
AnnaBridge 172:65be27845400 552 * @arg @ref LL_GPIO_AF_12
AnnaBridge 172:65be27845400 553 * @arg @ref LL_GPIO_AF_13
AnnaBridge 172:65be27845400 554 * @arg @ref LL_GPIO_AF_14
AnnaBridge 172:65be27845400 555 * @arg @ref LL_GPIO_AF_15
AnnaBridge 172:65be27845400 556 * @retval None
AnnaBridge 172:65be27845400 557 */
AnnaBridge 172:65be27845400 558 __STATIC_INLINE void LL_GPIO_SetAFPin_0_7(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Alternate)
AnnaBridge 172:65be27845400 559 {
AnnaBridge 172:65be27845400 560 MODIFY_REG(GPIOx->AFR[0], ((((Pin * Pin) * Pin) * Pin) * GPIO_AFRL_AFSEL0),
AnnaBridge 172:65be27845400 561 ((((Pin * Pin) * Pin) * Pin) * Alternate));
AnnaBridge 172:65be27845400 562 }
AnnaBridge 172:65be27845400 563
AnnaBridge 172:65be27845400 564 /**
AnnaBridge 172:65be27845400 565 * @brief Return gpio alternate function of a dedicated pin from 0 to 7 for a dedicated port.
AnnaBridge 172:65be27845400 566 * @rmtoll AFRL AFSELy LL_GPIO_GetAFPin_0_7
AnnaBridge 172:65be27845400 567 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 568 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 569 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 570 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 571 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 572 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 573 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 574 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 575 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 576 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 577 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 578 * @arg @ref LL_GPIO_AF_0
AnnaBridge 172:65be27845400 579 * @arg @ref LL_GPIO_AF_1
AnnaBridge 172:65be27845400 580 * @arg @ref LL_GPIO_AF_2
AnnaBridge 172:65be27845400 581 * @arg @ref LL_GPIO_AF_3
AnnaBridge 172:65be27845400 582 * @arg @ref LL_GPIO_AF_4
AnnaBridge 172:65be27845400 583 * @arg @ref LL_GPIO_AF_5
AnnaBridge 172:65be27845400 584 * @arg @ref LL_GPIO_AF_6
AnnaBridge 172:65be27845400 585 * @arg @ref LL_GPIO_AF_7
AnnaBridge 172:65be27845400 586 * @arg @ref LL_GPIO_AF_8
AnnaBridge 172:65be27845400 587 * @arg @ref LL_GPIO_AF_9
AnnaBridge 172:65be27845400 588 * @arg @ref LL_GPIO_AF_10
AnnaBridge 172:65be27845400 589 * @arg @ref LL_GPIO_AF_11
AnnaBridge 172:65be27845400 590 * @arg @ref LL_GPIO_AF_12
AnnaBridge 172:65be27845400 591 * @arg @ref LL_GPIO_AF_13
AnnaBridge 172:65be27845400 592 * @arg @ref LL_GPIO_AF_14
AnnaBridge 172:65be27845400 593 * @arg @ref LL_GPIO_AF_15
AnnaBridge 172:65be27845400 594 */
AnnaBridge 172:65be27845400 595 __STATIC_INLINE uint32_t LL_GPIO_GetAFPin_0_7(GPIO_TypeDef *GPIOx, uint32_t Pin)
AnnaBridge 172:65be27845400 596 {
AnnaBridge 172:65be27845400 597 return (uint32_t)(READ_BIT(GPIOx->AFR[0],
AnnaBridge 172:65be27845400 598 ((((Pin * Pin) * Pin) * Pin) * GPIO_AFRL_AFSEL0)) / (((Pin * Pin) * Pin) * Pin));
AnnaBridge 172:65be27845400 599 }
AnnaBridge 172:65be27845400 600
AnnaBridge 172:65be27845400 601 /**
AnnaBridge 172:65be27845400 602 * @brief Configure gpio alternate function of a dedicated pin from 8 to 15 for a dedicated port.
AnnaBridge 172:65be27845400 603 * @note Possible values are from AF0 to AF15 depending on target.
AnnaBridge 172:65be27845400 604 * @note Warning: only one pin can be passed as parameter.
AnnaBridge 172:65be27845400 605 * @rmtoll AFRH AFSELy LL_GPIO_SetAFPin_8_15
AnnaBridge 172:65be27845400 606 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 607 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 608 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 609 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 610 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 611 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 612 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 613 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 614 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 615 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 616 * @param Alternate This parameter can be one of the following values:
AnnaBridge 172:65be27845400 617 * @arg @ref LL_GPIO_AF_0
AnnaBridge 172:65be27845400 618 * @arg @ref LL_GPIO_AF_1
AnnaBridge 172:65be27845400 619 * @arg @ref LL_GPIO_AF_2
AnnaBridge 172:65be27845400 620 * @arg @ref LL_GPIO_AF_3
AnnaBridge 172:65be27845400 621 * @arg @ref LL_GPIO_AF_4
AnnaBridge 172:65be27845400 622 * @arg @ref LL_GPIO_AF_5
AnnaBridge 172:65be27845400 623 * @arg @ref LL_GPIO_AF_6
AnnaBridge 172:65be27845400 624 * @arg @ref LL_GPIO_AF_7
AnnaBridge 172:65be27845400 625 * @arg @ref LL_GPIO_AF_8
AnnaBridge 172:65be27845400 626 * @arg @ref LL_GPIO_AF_9
AnnaBridge 172:65be27845400 627 * @arg @ref LL_GPIO_AF_10
AnnaBridge 172:65be27845400 628 * @arg @ref LL_GPIO_AF_11
AnnaBridge 172:65be27845400 629 * @arg @ref LL_GPIO_AF_12
AnnaBridge 172:65be27845400 630 * @arg @ref LL_GPIO_AF_13
AnnaBridge 172:65be27845400 631 * @arg @ref LL_GPIO_AF_14
AnnaBridge 172:65be27845400 632 * @arg @ref LL_GPIO_AF_15
AnnaBridge 172:65be27845400 633 * @retval None
AnnaBridge 172:65be27845400 634 */
AnnaBridge 172:65be27845400 635 __STATIC_INLINE void LL_GPIO_SetAFPin_8_15(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Alternate)
AnnaBridge 172:65be27845400 636 {
AnnaBridge 172:65be27845400 637 MODIFY_REG(GPIOx->AFR[1], (((((Pin >> 8U) * (Pin >> 8U)) * (Pin >> 8U)) * (Pin >> 8U)) * GPIO_AFRH_AFSEL8),
AnnaBridge 172:65be27845400 638 (((((Pin >> 8U) * (Pin >> 8U)) * (Pin >> 8U)) * (Pin >> 8U)) * Alternate));
AnnaBridge 172:65be27845400 639 }
AnnaBridge 172:65be27845400 640
AnnaBridge 172:65be27845400 641 /**
AnnaBridge 172:65be27845400 642 * @brief Return gpio alternate function of a dedicated pin from 8 to 15 for a dedicated port.
AnnaBridge 172:65be27845400 643 * @note Possible values are from AF0 to AF15 depending on target.
AnnaBridge 172:65be27845400 644 * @rmtoll AFRH AFSELy LL_GPIO_GetAFPin_8_15
AnnaBridge 172:65be27845400 645 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 646 * @param Pin This parameter can be one of the following values:
AnnaBridge 172:65be27845400 647 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 648 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 649 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 650 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 651 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 652 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 653 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 654 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 655 * @retval Returned value can be one of the following values:
AnnaBridge 172:65be27845400 656 * @arg @ref LL_GPIO_AF_0
AnnaBridge 172:65be27845400 657 * @arg @ref LL_GPIO_AF_1
AnnaBridge 172:65be27845400 658 * @arg @ref LL_GPIO_AF_2
AnnaBridge 172:65be27845400 659 * @arg @ref LL_GPIO_AF_3
AnnaBridge 172:65be27845400 660 * @arg @ref LL_GPIO_AF_4
AnnaBridge 172:65be27845400 661 * @arg @ref LL_GPIO_AF_5
AnnaBridge 172:65be27845400 662 * @arg @ref LL_GPIO_AF_6
AnnaBridge 172:65be27845400 663 * @arg @ref LL_GPIO_AF_7
AnnaBridge 172:65be27845400 664 * @arg @ref LL_GPIO_AF_8
AnnaBridge 172:65be27845400 665 * @arg @ref LL_GPIO_AF_9
AnnaBridge 172:65be27845400 666 * @arg @ref LL_GPIO_AF_10
AnnaBridge 172:65be27845400 667 * @arg @ref LL_GPIO_AF_11
AnnaBridge 172:65be27845400 668 * @arg @ref LL_GPIO_AF_12
AnnaBridge 172:65be27845400 669 * @arg @ref LL_GPIO_AF_13
AnnaBridge 172:65be27845400 670 * @arg @ref LL_GPIO_AF_14
AnnaBridge 172:65be27845400 671 * @arg @ref LL_GPIO_AF_15
AnnaBridge 172:65be27845400 672 */
AnnaBridge 172:65be27845400 673 __STATIC_INLINE uint32_t LL_GPIO_GetAFPin_8_15(GPIO_TypeDef *GPIOx, uint32_t Pin)
AnnaBridge 172:65be27845400 674 {
AnnaBridge 172:65be27845400 675 return (uint32_t)(READ_BIT(GPIOx->AFR[1],
AnnaBridge 172:65be27845400 676 (((((Pin >> 8U) * (Pin >> 8U)) * (Pin >> 8U)) * (Pin >> 8U)) * GPIO_AFRH_AFSEL8)) / ((((Pin >> 8U) *
AnnaBridge 172:65be27845400 677 (Pin >> 8U)) * (Pin >> 8U)) * (Pin >> 8U)));
AnnaBridge 172:65be27845400 678 }
AnnaBridge 172:65be27845400 679
AnnaBridge 172:65be27845400 680
AnnaBridge 172:65be27845400 681 /**
AnnaBridge 172:65be27845400 682 * @brief Lock configuration of several pins for a dedicated port.
AnnaBridge 172:65be27845400 683 * @note When the lock sequence has been applied on a port bit, the
AnnaBridge 172:65be27845400 684 * value of this port bit can no longer be modified until the
AnnaBridge 172:65be27845400 685 * next reset.
AnnaBridge 172:65be27845400 686 * @note Each lock bit freezes a specific configuration register
AnnaBridge 172:65be27845400 687 * (control and alternate function registers).
AnnaBridge 172:65be27845400 688 * @rmtoll LCKR LCKK LL_GPIO_LockPin
AnnaBridge 172:65be27845400 689 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 690 * @param PinMask This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 691 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 692 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 693 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 694 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 695 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 696 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 697 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 698 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 699 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 700 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 701 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 702 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 703 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 704 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 705 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 706 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 707 * @arg @ref LL_GPIO_PIN_ALL
AnnaBridge 172:65be27845400 708 * @retval None
AnnaBridge 172:65be27845400 709 */
AnnaBridge 172:65be27845400 710 __STATIC_INLINE void LL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint32_t PinMask)
AnnaBridge 172:65be27845400 711 {
AnnaBridge 172:65be27845400 712 __IO uint32_t temp;
AnnaBridge 172:65be27845400 713 WRITE_REG(GPIOx->LCKR, GPIO_LCKR_LCKK | PinMask);
AnnaBridge 172:65be27845400 714 WRITE_REG(GPIOx->LCKR, PinMask);
AnnaBridge 172:65be27845400 715 WRITE_REG(GPIOx->LCKR, GPIO_LCKR_LCKK | PinMask);
AnnaBridge 172:65be27845400 716 temp = READ_REG(GPIOx->LCKR);
AnnaBridge 172:65be27845400 717 (void) temp;
AnnaBridge 172:65be27845400 718 }
AnnaBridge 172:65be27845400 719
AnnaBridge 172:65be27845400 720 /**
AnnaBridge 172:65be27845400 721 * @brief Return 1 if all pins passed as parameter, of a dedicated port, are locked. else Return 0.
AnnaBridge 172:65be27845400 722 * @rmtoll LCKR LCKy LL_GPIO_IsPinLocked
AnnaBridge 172:65be27845400 723 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 724 * @param PinMask This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 725 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 726 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 727 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 728 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 729 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 730 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 731 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 732 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 733 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 734 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 735 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 736 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 737 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 738 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 739 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 740 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 741 * @arg @ref LL_GPIO_PIN_ALL
AnnaBridge 172:65be27845400 742 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 743 */
AnnaBridge 172:65be27845400 744 __STATIC_INLINE uint32_t LL_GPIO_IsPinLocked(GPIO_TypeDef *GPIOx, uint32_t PinMask)
AnnaBridge 172:65be27845400 745 {
AnnaBridge 172:65be27845400 746 return ((READ_BIT(GPIOx->LCKR, PinMask) == (PinMask)) ? 1UL : 0UL);
AnnaBridge 172:65be27845400 747 }
AnnaBridge 172:65be27845400 748
AnnaBridge 172:65be27845400 749 /**
AnnaBridge 172:65be27845400 750 * @brief Return 1 if one of the pin of a dedicated port is locked. else return 0.
AnnaBridge 172:65be27845400 751 * @rmtoll LCKR LCKK LL_GPIO_IsAnyPinLocked
AnnaBridge 172:65be27845400 752 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 753 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 754 */
AnnaBridge 172:65be27845400 755 __STATIC_INLINE uint32_t LL_GPIO_IsAnyPinLocked(GPIO_TypeDef *GPIOx)
AnnaBridge 172:65be27845400 756 {
AnnaBridge 172:65be27845400 757 return ((READ_BIT(GPIOx->LCKR, GPIO_LCKR_LCKK) == (GPIO_LCKR_LCKK)) ? 1UL : 0UL);
AnnaBridge 172:65be27845400 758 }
AnnaBridge 172:65be27845400 759
AnnaBridge 172:65be27845400 760 /**
AnnaBridge 172:65be27845400 761 * @}
AnnaBridge 172:65be27845400 762 */
AnnaBridge 172:65be27845400 763
AnnaBridge 172:65be27845400 764 /** @defgroup GPIO_LL_EF_Data_Access Data Access
AnnaBridge 172:65be27845400 765 * @{
AnnaBridge 172:65be27845400 766 */
AnnaBridge 172:65be27845400 767
AnnaBridge 172:65be27845400 768 /**
AnnaBridge 172:65be27845400 769 * @brief Return full input data register value for a dedicated port.
AnnaBridge 172:65be27845400 770 * @rmtoll IDR IDy LL_GPIO_ReadInputPort
AnnaBridge 172:65be27845400 771 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 772 * @retval Input data register value of port
AnnaBridge 172:65be27845400 773 */
AnnaBridge 172:65be27845400 774 __STATIC_INLINE uint32_t LL_GPIO_ReadInputPort(GPIO_TypeDef *GPIOx)
AnnaBridge 172:65be27845400 775 {
AnnaBridge 172:65be27845400 776 return (uint32_t)(READ_REG(GPIOx->IDR));
AnnaBridge 172:65be27845400 777 }
AnnaBridge 172:65be27845400 778
AnnaBridge 172:65be27845400 779 /**
AnnaBridge 172:65be27845400 780 * @brief Return if input data level for several pins of dedicated port is high or low.
AnnaBridge 172:65be27845400 781 * @rmtoll IDR IDy LL_GPIO_IsInputPinSet
AnnaBridge 172:65be27845400 782 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 783 * @param PinMask This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 784 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 785 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 786 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 787 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 788 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 789 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 790 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 791 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 792 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 793 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 794 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 795 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 796 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 797 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 798 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 799 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 800 * @arg @ref LL_GPIO_PIN_ALL
AnnaBridge 172:65be27845400 801 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 802 */
AnnaBridge 172:65be27845400 803 __STATIC_INLINE uint32_t LL_GPIO_IsInputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask)
AnnaBridge 172:65be27845400 804 {
AnnaBridge 172:65be27845400 805 return ((READ_BIT(GPIOx->IDR, PinMask) == (PinMask)) ? 1UL : 0UL);
AnnaBridge 172:65be27845400 806 }
AnnaBridge 172:65be27845400 807
AnnaBridge 172:65be27845400 808 /**
AnnaBridge 172:65be27845400 809 * @brief Write output data register for the port.
AnnaBridge 172:65be27845400 810 * @rmtoll ODR ODy LL_GPIO_WriteOutputPort
AnnaBridge 172:65be27845400 811 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 812 * @param PortValue Level value for each pin of the port
AnnaBridge 172:65be27845400 813 * @retval None
AnnaBridge 172:65be27845400 814 */
AnnaBridge 172:65be27845400 815 __STATIC_INLINE void LL_GPIO_WriteOutputPort(GPIO_TypeDef *GPIOx, uint32_t PortValue)
AnnaBridge 172:65be27845400 816 {
AnnaBridge 172:65be27845400 817 WRITE_REG(GPIOx->ODR, PortValue);
AnnaBridge 172:65be27845400 818 }
AnnaBridge 172:65be27845400 819
AnnaBridge 172:65be27845400 820 /**
AnnaBridge 172:65be27845400 821 * @brief Return full output data register value for a dedicated port.
AnnaBridge 172:65be27845400 822 * @rmtoll ODR ODy LL_GPIO_ReadOutputPort
AnnaBridge 172:65be27845400 823 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 824 * @retval Output data register value of port
AnnaBridge 172:65be27845400 825 */
AnnaBridge 172:65be27845400 826 __STATIC_INLINE uint32_t LL_GPIO_ReadOutputPort(GPIO_TypeDef *GPIOx)
AnnaBridge 172:65be27845400 827 {
AnnaBridge 172:65be27845400 828 return (uint32_t)(READ_REG(GPIOx->ODR));
AnnaBridge 172:65be27845400 829 }
AnnaBridge 172:65be27845400 830
AnnaBridge 172:65be27845400 831 /**
AnnaBridge 172:65be27845400 832 * @brief Return if input data level for several pins of dedicated port is high or low.
AnnaBridge 172:65be27845400 833 * @rmtoll ODR ODy LL_GPIO_IsOutputPinSet
AnnaBridge 172:65be27845400 834 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 835 * @param PinMask This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 836 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 837 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 838 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 839 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 840 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 841 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 842 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 843 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 844 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 845 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 846 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 847 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 848 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 849 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 850 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 851 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 852 * @arg @ref LL_GPIO_PIN_ALL
AnnaBridge 172:65be27845400 853 * @retval State of bit (1 or 0).
AnnaBridge 172:65be27845400 854 */
AnnaBridge 172:65be27845400 855 __STATIC_INLINE uint32_t LL_GPIO_IsOutputPinSet(GPIO_TypeDef *GPIOx, uint32_t PinMask)
AnnaBridge 172:65be27845400 856 {
AnnaBridge 172:65be27845400 857 return ((READ_BIT(GPIOx->ODR, PinMask) == (PinMask)) ? 1UL : 0UL);
AnnaBridge 172:65be27845400 858 }
AnnaBridge 172:65be27845400 859
AnnaBridge 172:65be27845400 860 /**
AnnaBridge 172:65be27845400 861 * @brief Set several pins to high level on dedicated gpio port.
AnnaBridge 172:65be27845400 862 * @rmtoll BSRR BSy LL_GPIO_SetOutputPin
AnnaBridge 172:65be27845400 863 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 864 * @param PinMask This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 865 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 866 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 867 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 868 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 869 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 870 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 871 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 872 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 873 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 874 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 875 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 876 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 877 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 878 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 879 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 880 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 881 * @arg @ref LL_GPIO_PIN_ALL
AnnaBridge 172:65be27845400 882 * @retval None
AnnaBridge 172:65be27845400 883 */
AnnaBridge 172:65be27845400 884 __STATIC_INLINE void LL_GPIO_SetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask)
AnnaBridge 172:65be27845400 885 {
AnnaBridge 172:65be27845400 886 WRITE_REG(GPIOx->BSRR, PinMask);
AnnaBridge 172:65be27845400 887 }
AnnaBridge 172:65be27845400 888
AnnaBridge 172:65be27845400 889 /**
AnnaBridge 172:65be27845400 890 * @brief Set several pins to low level on dedicated gpio port.
AnnaBridge 172:65be27845400 891 * @rmtoll BSRR BRy LL_GPIO_ResetOutputPin
AnnaBridge 172:65be27845400 892 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 893 * @param PinMask This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 894 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 895 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 896 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 897 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 898 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 899 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 900 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 901 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 902 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 903 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 904 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 905 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 906 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 907 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 908 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 909 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 910 * @arg @ref LL_GPIO_PIN_ALL
AnnaBridge 172:65be27845400 911 * @retval None
AnnaBridge 172:65be27845400 912 */
AnnaBridge 172:65be27845400 913 __STATIC_INLINE void LL_GPIO_ResetOutputPin(GPIO_TypeDef *GPIOx, uint32_t PinMask)
AnnaBridge 172:65be27845400 914 {
AnnaBridge 172:65be27845400 915 WRITE_REG(GPIOx->BSRR, PinMask << 16U);
AnnaBridge 172:65be27845400 916 }
AnnaBridge 172:65be27845400 917
AnnaBridge 172:65be27845400 918 /**
AnnaBridge 172:65be27845400 919 * @brief Toggle data value for several pin of dedicated port.
AnnaBridge 172:65be27845400 920 * @rmtoll ODR ODy LL_GPIO_TogglePin
AnnaBridge 172:65be27845400 921 * @param GPIOx GPIO Port
AnnaBridge 172:65be27845400 922 * @param PinMask This parameter can be a combination of the following values:
AnnaBridge 172:65be27845400 923 * @arg @ref LL_GPIO_PIN_0
AnnaBridge 172:65be27845400 924 * @arg @ref LL_GPIO_PIN_1
AnnaBridge 172:65be27845400 925 * @arg @ref LL_GPIO_PIN_2
AnnaBridge 172:65be27845400 926 * @arg @ref LL_GPIO_PIN_3
AnnaBridge 172:65be27845400 927 * @arg @ref LL_GPIO_PIN_4
AnnaBridge 172:65be27845400 928 * @arg @ref LL_GPIO_PIN_5
AnnaBridge 172:65be27845400 929 * @arg @ref LL_GPIO_PIN_6
AnnaBridge 172:65be27845400 930 * @arg @ref LL_GPIO_PIN_7
AnnaBridge 172:65be27845400 931 * @arg @ref LL_GPIO_PIN_8
AnnaBridge 172:65be27845400 932 * @arg @ref LL_GPIO_PIN_9
AnnaBridge 172:65be27845400 933 * @arg @ref LL_GPIO_PIN_10
AnnaBridge 172:65be27845400 934 * @arg @ref LL_GPIO_PIN_11
AnnaBridge 172:65be27845400 935 * @arg @ref LL_GPIO_PIN_12
AnnaBridge 172:65be27845400 936 * @arg @ref LL_GPIO_PIN_13
AnnaBridge 172:65be27845400 937 * @arg @ref LL_GPIO_PIN_14
AnnaBridge 172:65be27845400 938 * @arg @ref LL_GPIO_PIN_15
AnnaBridge 172:65be27845400 939 * @arg @ref LL_GPIO_PIN_ALL
AnnaBridge 172:65be27845400 940 * @retval None
AnnaBridge 172:65be27845400 941 */
AnnaBridge 172:65be27845400 942 __STATIC_INLINE void LL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint32_t PinMask)
AnnaBridge 172:65be27845400 943 {
AnnaBridge 172:65be27845400 944 WRITE_REG(GPIOx->ODR, READ_REG(GPIOx->ODR) ^ PinMask);
AnnaBridge 172:65be27845400 945 }
AnnaBridge 172:65be27845400 946
AnnaBridge 172:65be27845400 947 /**
AnnaBridge 172:65be27845400 948 * @}
AnnaBridge 172:65be27845400 949 */
AnnaBridge 172:65be27845400 950
AnnaBridge 172:65be27845400 951 #if defined(USE_FULL_LL_DRIVER)
AnnaBridge 172:65be27845400 952 /** @defgroup GPIO_LL_EF_Init Initialization and de-initialization functions
AnnaBridge 172:65be27845400 953 * @{
AnnaBridge 172:65be27845400 954 */
AnnaBridge 172:65be27845400 955
AnnaBridge 172:65be27845400 956 ErrorStatus LL_GPIO_DeInit(GPIO_TypeDef *GPIOx);
AnnaBridge 172:65be27845400 957 ErrorStatus LL_GPIO_Init(GPIO_TypeDef *GPIOx, LL_GPIO_InitTypeDef *GPIO_InitStruct);
AnnaBridge 172:65be27845400 958 void LL_GPIO_StructInit(LL_GPIO_InitTypeDef *GPIO_InitStruct);
AnnaBridge 172:65be27845400 959
AnnaBridge 172:65be27845400 960 /**
AnnaBridge 172:65be27845400 961 * @}
AnnaBridge 172:65be27845400 962 */
AnnaBridge 172:65be27845400 963 #endif /* USE_FULL_LL_DRIVER */
AnnaBridge 172:65be27845400 964
AnnaBridge 172:65be27845400 965 /**
AnnaBridge 172:65be27845400 966 * @}
AnnaBridge 172:65be27845400 967 */
AnnaBridge 172:65be27845400 968
AnnaBridge 172:65be27845400 969 /**
AnnaBridge 172:65be27845400 970 * @}
AnnaBridge 172:65be27845400 971 */
AnnaBridge 172:65be27845400 972
AnnaBridge 172:65be27845400 973 #endif /*defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || defined (GPIOF) || defined (GPIOG) || defined (GPIOH) || defined (GPIOI) || defined (GPIOJ) || defined (GPIOK) */
AnnaBridge 172:65be27845400 974 /**
AnnaBridge 172:65be27845400 975 * @}
AnnaBridge 172:65be27845400 976 */
AnnaBridge 172:65be27845400 977
AnnaBridge 172:65be27845400 978 #ifdef __cplusplus
AnnaBridge 172:65be27845400 979 }
AnnaBridge 172:65be27845400 980 #endif
AnnaBridge 172:65be27845400 981
AnnaBridge 172:65be27845400 982 #endif /* STM32H7xx_LL_GPIO_H */
AnnaBridge 172:65be27845400 983
AnnaBridge 172:65be27845400 984 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/