MacroRat / MouseCode

Dependencies:   ITG3200 QEI

Committer:
sahilmgandhi
Date:
Sun May 14 23:18:57 2017 +0000
Revision:
18:6a4db94011d3
Publishing again

Who changed what in which revision?

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