Subversion Repositories DashDisplay

Rev

Rev 49 | Rev 61 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 49 Rev 50
Line 1... Line 1...
1
/**
1
/**
2
  ******************************************************************************
2
  ******************************************************************************
3
  * @file    stm32l1xx_hal_gpio.h
3
  * @file    stm32l1xx_hal_gpio.h
4
  * @author  MCD Application Team
4
  * @author  MCD Application Team
5
  * @version V1.2.0
-
 
6
  * @date    01-July-2016
-
 
7
  * @brief   Header file of GPIO HAL module.
5
  * @brief   Header file of GPIO HAL module.
8
  ******************************************************************************
6
  ******************************************************************************
9
  * @attention
7
  * @attention
10
  *
8
  *
11
  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
9
  * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
-
 
10
  * All rights reserved.</center></h2>
12
  *
11
  *
13
  * Redistribution and use in source and binary forms, with or without modification,
12
  * This software component is licensed by ST under BSD 3-Clause license,
14
  * are permitted provided that the following conditions are met:
13
  * the "License"; You may not use this file except in compliance with the
15
  *   1. Redistributions of source code must retain the above copyright notice,
-
 
16
  *      this list of conditions and the following disclaimer.
-
 
17
  *   2. Redistributions in binary form must reproduce the above copyright notice,
-
 
18
  *      this list of conditions and the following disclaimer in the documentation
-
 
19
  *      and/or other materials provided with the distribution.
14
  * License. You may obtain a copy of the License at:
20
  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-
 
21
  *      may be used to endorse or promote products derived from this software
15
  *                        opensource.org/licenses/BSD-3-Clause
22
  *      without specific prior written permission.
-
 
23
  *
-
 
24
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-
 
25
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-
 
26
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-
 
27
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-
 
28
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-
 
29
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-
 
30
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-
 
31
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-
 
32
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-
 
33
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
 
34
  *
16
  *
35
  ******************************************************************************
17
  ******************************************************************************
36
  */
18
  */
37
 
19
 
38
/* Define to prevent recursive inclusion -------------------------------------*/
20
/* Define to prevent recursive inclusion -------------------------------------*/
39
#ifndef __STM32L1xx_HAL_GPIO_H
21
#ifndef __STM32L1xx_HAL_GPIO_H
40
#define __STM32L1xx_HAL_GPIO_H
22
#define __STM32L1xx_HAL_GPIO_H
41
 
23
 
42
#ifdef __cplusplus
24
#ifdef __cplusplus
43
 extern "C" {
25
extern "C" {
44
#endif
26
#endif
45
 
27
 
46
/* Includes ------------------------------------------------------------------*/
28
/* Includes ------------------------------------------------------------------*/
47
#include "stm32l1xx_hal_def.h"
29
#include "stm32l1xx_hal_def.h"
48
 
30
 
Line 51... Line 33...
51
  */
33
  */
52
 
34
 
53
/** @defgroup GPIO GPIO
35
/** @defgroup GPIO GPIO
54
  * @brief GPIO HAL module driver
36
  * @brief GPIO HAL module driver
55
  * @{
37
  * @{
56
  */
38
  */
57
 
39
 
58
/* Exported types ------------------------------------------------------------*/
40
/* Exported types ------------------------------------------------------------*/
59
 
41
 
60
/** @defgroup GPIO_Exported_Types GPIO Exported Types
42
/** @defgroup GPIO_Exported_Types GPIO Exported Types
61
  * @{
43
  * @{
62
  */
44
  */
63
/**
45
/**
64
  * @brief   GPIO Init structure definition  
46
  * @brief   GPIO Init structure definition
65
  */
47
  */
66
typedef struct
48
typedef struct
67
{
49
{
68
  uint32_t Pin;       /*!< Specifies the GPIO pins to be configured.
50
  uint32_t Pin;       /*!< Specifies the GPIO pins to be configured.
69
                           This parameter can be any value of @ref GPIO_pins */
51
                           This parameter can be any value of @ref GPIO_pins */
Line 75... Line 57...
75
                           This parameter can be a value of @ref GPIO_pull */
57
                           This parameter can be a value of @ref GPIO_pull */
76
 
58
 
77
  uint32_t Speed;     /*!< Specifies the speed for the selected pins.
59
  uint32_t Speed;     /*!< Specifies the speed for the selected pins.
78
                           This parameter can be a value of @ref GPIO_speed */
60
                           This parameter can be a value of @ref GPIO_speed */
79
 
61
 
80
  uint32_t Alternate;  /*!< Peripheral to be connected to the selected pins
62
  uint32_t Alternate;  /*!< Peripheral to be connected to the selected pins
81
                            This parameter can be a value of @ref GPIOEx_Alternate_function_selection */
63
                            This parameter can be a value of @ref GPIOEx_Alternate_function_selection */
82
}GPIO_InitTypeDef;
64
} GPIO_InitTypeDef;
83
 
65
 
84
/**
66
/**
85
  * @brief  GPIO Bit SET and Bit RESET enumeration
67
  * @brief  GPIO Bit SET and Bit RESET enumeration
86
  */
68
  */
87
typedef enum
69
typedef enum
88
{
70
{
89
  GPIO_PIN_RESET = 0,
71
  GPIO_PIN_RESET = 0,
90
  GPIO_PIN_SET
72
  GPIO_PIN_SET
91
}GPIO_PinState;
73
} GPIO_PinState;
92
/**
74
/**
93
  * @}
75
  * @}
94
  */
76
  */
95
 
77
 
96
/* Exported constants --------------------------------------------------------*/
78
/* Exported constants --------------------------------------------------------*/
97
 
79
 
98
/** @defgroup GPIO_Exported_Constants GPIO Exported Constants
80
/** @defgroup GPIO_Exported_Constants GPIO Exported Constants
99
  * @{
81
  * @{
100
  */
82
  */
101
 
83
 
102
 
84
 
103
/** @defgroup GPIO_pins GPIO pins
85
/** @defgroup GPIO_pins GPIO pins
104
  * @{
86
  * @{
105
  */
87
  */
106
#define GPIO_PIN_0                 ((uint16_t)0x0001)  /* Pin 0 selected    */
88
#define GPIO_PIN_0                 ((uint16_t)0x0001U)  /* Pin 0 selected    */
107
#define GPIO_PIN_1                 ((uint16_t)0x0002)  /* Pin 1 selected    */
89
#define GPIO_PIN_1                 ((uint16_t)0x0002U)  /* Pin 1 selected    */
108
#define GPIO_PIN_2                 ((uint16_t)0x0004)  /* Pin 2 selected    */
90
#define GPIO_PIN_2                 ((uint16_t)0x0004U)  /* Pin 2 selected    */
109
#define GPIO_PIN_3                 ((uint16_t)0x0008)  /* Pin 3 selected    */
91
#define GPIO_PIN_3                 ((uint16_t)0x0008U)  /* Pin 3 selected    */
110
#define GPIO_PIN_4                 ((uint16_t)0x0010)  /* Pin 4 selected    */
92
#define GPIO_PIN_4                 ((uint16_t)0x0010U)  /* Pin 4 selected    */
111
#define GPIO_PIN_5                 ((uint16_t)0x0020)  /* Pin 5 selected    */
93
#define GPIO_PIN_5                 ((uint16_t)0x0020U)  /* Pin 5 selected    */
112
#define GPIO_PIN_6                 ((uint16_t)0x0040)  /* Pin 6 selected    */
94
#define GPIO_PIN_6                 ((uint16_t)0x0040U)  /* Pin 6 selected    */
113
#define GPIO_PIN_7                 ((uint16_t)0x0080)  /* Pin 7 selected    */
95
#define GPIO_PIN_7                 ((uint16_t)0x0080U)  /* Pin 7 selected    */
114
#define GPIO_PIN_8                 ((uint16_t)0x0100)  /* Pin 8 selected    */
96
#define GPIO_PIN_8                 ((uint16_t)0x0100U)  /* Pin 8 selected    */
115
#define GPIO_PIN_9                 ((uint16_t)0x0200)  /* Pin 9 selected    */
97
#define GPIO_PIN_9                 ((uint16_t)0x0200U)  /* Pin 9 selected    */
116
#define GPIO_PIN_10                ((uint16_t)0x0400)  /* Pin 10 selected   */
98
#define GPIO_PIN_10                ((uint16_t)0x0400U)  /* Pin 10 selected   */
117
#define GPIO_PIN_11                ((uint16_t)0x0800)  /* Pin 11 selected   */
99
#define GPIO_PIN_11                ((uint16_t)0x0800U)  /* Pin 11 selected   */
118
#define GPIO_PIN_12                ((uint16_t)0x1000)  /* Pin 12 selected   */
100
#define GPIO_PIN_12                ((uint16_t)0x1000U)  /* Pin 12 selected   */
119
#define GPIO_PIN_13                ((uint16_t)0x2000)  /* Pin 13 selected   */
101
#define GPIO_PIN_13                ((uint16_t)0x2000U)  /* Pin 13 selected   */
120
#define GPIO_PIN_14                ((uint16_t)0x4000)  /* Pin 14 selected   */
102
#define GPIO_PIN_14                ((uint16_t)0x4000U)  /* Pin 14 selected   */
121
#define GPIO_PIN_15                ((uint16_t)0x8000)  /* Pin 15 selected   */
103
#define GPIO_PIN_15                ((uint16_t)0x8000U)  /* Pin 15 selected   */
122
#define GPIO_PIN_All               ((uint16_t)0xFFFF)  /* All pins selected */
104
#define GPIO_PIN_All               ((uint16_t)0xFFFFU)  /* All pins selected */
123
 
105
 
124
#define GPIO_PIN_MASK              ((uint32_t)0x0000FFFF) /* PIN mask for assert test */
106
#define GPIO_PIN_MASK              (0x0000FFFFU) /* PIN mask for assert test */
125
/**
107
/**
126
  * @}
108
  * @}
127
  */
109
  */
128
 
110
 
129
/** @defgroup GPIO_mode GPIO mode
111
/** @defgroup GPIO_mode GPIO mode
130
  * @brief GPIO Configuration Mode
112
  * @brief GPIO Configuration Mode
131
  *        Elements values convention: 0xX0yz00YZ
113
  *        Elements values convention: 0xX0yz00YZ
132
  *           - X  : GPIO mode or EXTI Mode
114
  *           - X  : GPIO mode or EXTI Mode
133
  *           - y  : External IT or Event trigger detection
115
  *           - y  : External IT or Event trigger detection
134
  *           - z  : IO configuration on External IT or Event
116
  *           - z  : IO configuration on External IT or Event
135
  *           - Y  : Output type (Push Pull or Open Drain)
117
  *           - Y  : Output type (Push Pull or Open Drain)
136
  *           - Z  : IO Direction mode (Input, Output, Alternate or Analog)
118
  *           - Z  : IO Direction mode (Input, Output, Alternate or Analog)
137
  * @{
119
  * @{
138
  */
120
  */
139
#define  GPIO_MODE_INPUT                        ((uint32_t)0x00000000)   /*!< Input Floating Mode                   */
121
#define  GPIO_MODE_INPUT                        (0x00000000U)   /*!< Input Floating Mode                   */
140
#define  GPIO_MODE_OUTPUT_PP                    ((uint32_t)0x00000001)   /*!< Output Push Pull Mode                 */
122
#define  GPIO_MODE_OUTPUT_PP                    (0x00000001U)   /*!< Output Push Pull Mode                 */
141
#define  GPIO_MODE_OUTPUT_OD                    ((uint32_t)0x00000011)   /*!< Output Open Drain Mode                */
123
#define  GPIO_MODE_OUTPUT_OD                    (0x00000011U)   /*!< Output Open Drain Mode                */
142
#define  GPIO_MODE_AF_PP                        ((uint32_t)0x00000002)   /*!< Alternate Function Push Pull Mode     */
124
#define  GPIO_MODE_AF_PP                        (0x00000002U)   /*!< Alternate Function Push Pull Mode     */
143
#define  GPIO_MODE_AF_OD                        ((uint32_t)0x00000012)   /*!< Alternate Function Open Drain Mode    */
125
#define  GPIO_MODE_AF_OD                        (0x00000012U)   /*!< Alternate Function Open Drain Mode    */
144
 
126
 
145
#define  GPIO_MODE_ANALOG                       ((uint32_t)0x00000003)   /*!< Analog Mode  */
127
#define  GPIO_MODE_ANALOG                       (0x00000003U)   /*!< Analog Mode  */
146
   
128
 
147
#define  GPIO_MODE_IT_RISING                    ((uint32_t)0x10110000)   /*!< External Interrupt Mode with Rising edge trigger detection          */
129
#define  GPIO_MODE_IT_RISING                    (0x10110000U)   /*!< External Interrupt Mode with Rising edge trigger detection          */
148
#define  GPIO_MODE_IT_FALLING                   ((uint32_t)0x10210000)   /*!< External Interrupt Mode with Falling edge trigger detection         */
130
#define  GPIO_MODE_IT_FALLING                   (0x10210000U)   /*!< External Interrupt Mode with Falling edge trigger detection         */
149
#define  GPIO_MODE_IT_RISING_FALLING            ((uint32_t)0x10310000)   /*!< External Interrupt Mode with Rising/Falling edge trigger detection  */
131
#define  GPIO_MODE_IT_RISING_FALLING            (0x10310000U)   /*!< External Interrupt Mode with Rising/Falling edge trigger detection  */
150
 
132
 
151
#define  GPIO_MODE_EVT_RISING                   ((uint32_t)0x10120000)   /*!< External Event Mode with Rising edge trigger detection               */
133
#define  GPIO_MODE_EVT_RISING                   (0x10120000U)   /*!< External Event Mode with Rising edge trigger detection               */
152
#define  GPIO_MODE_EVT_FALLING                  ((uint32_t)0x10220000)   /*!< External Event Mode with Falling edge trigger detection              */
134
#define  GPIO_MODE_EVT_FALLING                  (0x10220000U)   /*!< External Event Mode with Falling edge trigger detection              */
153
#define  GPIO_MODE_EVT_RISING_FALLING           ((uint32_t)0x10320000)   /*!< External Event Mode with Rising/Falling edge trigger detection       */
135
#define  GPIO_MODE_EVT_RISING_FALLING           (0x10320000U)   /*!< External Event Mode with Rising/Falling edge trigger detection       */
154
 
136
 
155
/**
137
/**
156
  * @}
138
  * @}
157
  */
139
  */
158
                                                         
-
 
-
 
140
 
159
/** @defgroup GPIO_speed GPIO speed
141
/** @defgroup GPIO_speed GPIO speed
160
  * @brief GPIO Output Maximum frequency
142
  * @brief GPIO Output Maximum frequency
161
  * @{
143
  * @{
162
  */  
144
  */
163
#define  GPIO_SPEED_FREQ_LOW       ((uint32_t)0x00000000) /*!< max: 400 KHz, please refer to the product datasheet */
145
#define  GPIO_SPEED_FREQ_LOW       (0x00000000U) /*!< max: 400 KHz, please refer to the product datasheet */
164
#define  GPIO_SPEED_FREQ_MEDIUM    ((uint32_t)0x00000001) /*!< max: 1 MHz to 2 MHz, please refer to the product datasheet */
146
#define  GPIO_SPEED_FREQ_MEDIUM    (0x00000001U) /*!< max: 1 MHz to 2 MHz, please refer to the product datasheet */
165
#define  GPIO_SPEED_FREQ_HIGH      ((uint32_t)0x00000002) /*!< max: 2 MHz to 10 MHz, please refer to the product datasheet */
147
#define  GPIO_SPEED_FREQ_HIGH      (0x00000002U) /*!< max: 2 MHz to 10 MHz, please refer to the product datasheet */
166
#define  GPIO_SPEED_FREQ_VERY_HIGH ((uint32_t)0x00000003) /*!< max: 8 MHz to 50 MHz, please refer to the product datasheet */
148
#define  GPIO_SPEED_FREQ_VERY_HIGH (0x00000003U) /*!< max: 8 MHz to 50 MHz, please refer to the product datasheet */
167
 
149
 
168
/**
150
/**
169
  * @}
151
  * @}
170
  */
152
  */
171
 
153
 
172
 /** @defgroup GPIO_pull GPIO pull
154
/** @defgroup GPIO_pull GPIO pull
173
   * @brief GPIO Pull-Up or Pull-Down Activation
155
  * @brief GPIO Pull-Up or Pull-Down Activation
174
   * @{
156
  * @{
175
   */  
157
  */
176
#define  GPIO_NOPULL        ((uint32_t)0x00000000)   /*!< No Pull-up or Pull-down activation  */
158
#define  GPIO_NOPULL        (0x00000000U)   /*!< No Pull-up or Pull-down activation  */
177
#define  GPIO_PULLUP        ((uint32_t)0x00000001)   /*!< Pull-up activation                  */
159
#define  GPIO_PULLUP        (0x00000001U)   /*!< Pull-up activation                  */
178
#define  GPIO_PULLDOWN      ((uint32_t)0x00000002)   /*!< Pull-down activation                */
160
#define  GPIO_PULLDOWN      (0x00000002U)   /*!< Pull-down activation                */
179
 
161
 
180
/**
162
/**
181
  * @}
163
  * @}
182
  */
164
  */
183
 
165
 
Line 190... Line 172...
190
  * @{
172
  * @{
191
  */
173
  */
192
 
174
 
193
/**
175
/**
194
  * @}
176
  * @}
195
  */
177
  */
196
 
178
 
197
/* Private macros --------------------------------------------------------*/
179
/* Private macros --------------------------------------------------------*/
198
/** @defgroup GPIO_Private_Macros GPIO Private Macros
180
/** @defgroup GPIO_Private_Macros GPIO Private Macros
199
  * @{
181
  * @{
200
  */
182
  */
201
 
183
 
202
#define IS_GPIO_PIN_ACTION(ACTION) (((ACTION) == GPIO_PIN_RESET) || ((ACTION) == GPIO_PIN_SET))
184
#define IS_GPIO_PIN_ACTION(ACTION) (((ACTION) == GPIO_PIN_RESET) || ((ACTION) == GPIO_PIN_SET))
203
 
185
 
204
#define IS_GPIO_PIN(__PIN__)        ((((__PIN__) & GPIO_PIN_MASK) != (uint32_t)0x00) &&\
186
#define IS_GPIO_PIN(__PIN__)        ((((uint32_t)(__PIN__) & GPIO_PIN_MASK) != 0x00U) &&\
205
                                     (((__PIN__) & ~GPIO_PIN_MASK) == (uint32_t)0x00))
187
                                     (((uint32_t)(__PIN__) & ~GPIO_PIN_MASK) == 0x00U))
206
 
188
 
207
#define IS_GPIO_PULL(PULL) (((PULL) == GPIO_NOPULL) || ((PULL) == GPIO_PULLUP) || \
189
#define IS_GPIO_PULL(PULL) (((PULL) == GPIO_NOPULL) || ((PULL) == GPIO_PULLUP) || \
208
                            ((PULL) == GPIO_PULLDOWN))
190
                            ((PULL) == GPIO_PULLDOWN))
209
                           
-
 
-
 
191
 
210
#define IS_GPIO_SPEED(SPEED) (((SPEED) == GPIO_SPEED_FREQ_LOW)  || ((SPEED) == GPIO_SPEED_FREQ_MEDIUM) || \
192
#define IS_GPIO_SPEED(SPEED) (((SPEED) == GPIO_SPEED_FREQ_LOW)  || ((SPEED) == GPIO_SPEED_FREQ_MEDIUM) || \
211
                                ((SPEED) == GPIO_SPEED_FREQ_HIGH) || ((SPEED) == GPIO_SPEED_FREQ_VERY_HIGH))
193
                                ((SPEED) == GPIO_SPEED_FREQ_HIGH) || ((SPEED) == GPIO_SPEED_FREQ_VERY_HIGH))
212
 
194
 
213
#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_MODE_INPUT)              ||\
195
#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_MODE_INPUT)              ||\
214
                            ((MODE) == GPIO_MODE_OUTPUT_PP)          ||\
196
                            ((MODE) == GPIO_MODE_OUTPUT_PP)          ||\
Line 230... Line 212...
230
/* Exported macro ------------------------------------------------------------*/
212
/* Exported macro ------------------------------------------------------------*/
231
 
213
 
232
/** @defgroup GPIO_Exported_Macros GPIO Exported Macros
214
/** @defgroup GPIO_Exported_Macros GPIO Exported Macros
233
  * @{
215
  * @{
234
  */
216
  */
235
 
217
 
236
/**
218
/**
237
  * @brief  Checks whether the specified EXTI line flag is set or not.
219
  * @brief  Checks whether the specified EXTI line flag is set or not.
238
  * @param  __EXTI_LINE__: specifies the EXTI line flag to check.
220
  * @param  __EXTI_LINE__ specifies the EXTI line flag to check.
239
  *         This parameter can be GPIO_PIN_x where x can be(0..15)
221
  *         This parameter can be GPIO_PIN_x where x can be(0..15)
240
  * @retval The new state of __EXTI_LINE__ (SET or RESET).
222
  * @retval The new state of __EXTI_LINE__ (SET or RESET).
241
  */
223
  */
242
#define __HAL_GPIO_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
224
#define __HAL_GPIO_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
243
 
225
 
244
/**
226
/**
245
  * @brief  Clears the EXTI's line pending flags.
227
  * @brief  Clears the EXTI's line pending flags.
246
  * @param  __EXTI_LINE__: specifies the EXTI lines flags to clear.
228
  * @param  __EXTI_LINE__ specifies the EXTI lines flags to clear.
247
  *         This parameter can be any combination of GPIO_PIN_x where x can be (0..15)
229
  *         This parameter can be any combination of GPIO_PIN_x where x can be (0..15)
248
  * @retval None
230
  * @retval None
249
  */
231
  */
250
#define __HAL_GPIO_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
232
#define __HAL_GPIO_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
251
 
233
 
252
/**
234
/**
253
  * @brief  Checks whether the specified EXTI line is asserted or not.
235
  * @brief  Checks whether the specified EXTI line is asserted or not.
254
  * @param  __EXTI_LINE__: specifies the EXTI line to check.
236
  * @param  __EXTI_LINE__ specifies the EXTI line to check.
255
  *          This parameter can be GPIO_PIN_x where x can be(0..15)
237
  *          This parameter can be GPIO_PIN_x where x can be(0..15)
256
  * @retval The new state of __EXTI_LINE__ (SET or RESET).
238
  * @retval The new state of __EXTI_LINE__ (SET or RESET).
257
  */
239
  */
258
#define __HAL_GPIO_EXTI_GET_IT(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
240
#define __HAL_GPIO_EXTI_GET_IT(__EXTI_LINE__) (EXTI->PR & (__EXTI_LINE__))
259
 
241
 
260
/**
242
/**
261
  * @brief  Clears the EXTI's line pending bits.
243
  * @brief  Clears the EXTI's line pending bits.
262
  * @param  __EXTI_LINE__: specifies the EXTI lines to clear.
244
  * @param  __EXTI_LINE__ specifies the EXTI lines to clear.
263
  *          This parameter can be any combination of GPIO_PIN_x where x can be (0..15)
245
  *          This parameter can be any combination of GPIO_PIN_x where x can be (0..15)
264
  * @retval None
246
  * @retval None
265
  */
247
  */
266
#define __HAL_GPIO_EXTI_CLEAR_IT(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
248
#define __HAL_GPIO_EXTI_CLEAR_IT(__EXTI_LINE__) (EXTI->PR = (__EXTI_LINE__))
267
 
249
 
268
/**
250
/**
269
  * @brief  Generates a Software interrupt on selected EXTI line.
251
  * @brief  Generates a Software interrupt on selected EXTI line.
270
  * @param  __EXTI_LINE__: specifies the EXTI line to check.
252
  * @param  __EXTI_LINE__ specifies the EXTI line to check.
271
  *          This parameter can be GPIO_PIN_x where x can be(0..15)
253
  *          This parameter can be GPIO_PIN_x where x can be(0..15)
272
  * @retval None
254
  * @retval None
273
  */
255
  */
274
#define __HAL_GPIO_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER |= (__EXTI_LINE__))
256
#define __HAL_GPIO_EXTI_GENERATE_SWIT(__EXTI_LINE__) (EXTI->SWIER |= (__EXTI_LINE__))
275
 
257
 
Line 278... Line 260...
278
  */
260
  */
279
 
261
 
280
/* Include GPIO HAL Extension module */
262
/* Include GPIO HAL Extension module */
281
#include "stm32l1xx_hal_gpio_ex.h"
263
#include "stm32l1xx_hal_gpio_ex.h"
282
 
264
 
283
/* Exported functions --------------------------------------------------------*/
265
/* Exported functions --------------------------------------------------------*/
284
/** @defgroup GPIO_Exported_Functions GPIO Exported Functions
266
/** @defgroup GPIO_Exported_Functions GPIO Exported Functions
285
 *  @brief    GPIO Exported Functions
267
  *  @brief    GPIO Exported Functions
286
  * @{
268
  * @{
287
  */
269
  */
288
 
270
 
289
/** @defgroup GPIO_Exported_Functions_Group1 Initialization and Configuration functions
271
/** @defgroup GPIO_Exported_Functions_Group1 Initialization and Configuration functions
290
 *  @brief    Initialization and Configuration functions
272
 *  @brief    Initialization and Configuration functions
291
 * @{
273
 * @{
292
 */
274
 */
293
     
275
 
294
/* Initialization and de-initialization functions *****************************/
276
/* Initialization and de-initialization functions *****************************/
295
void              HAL_GPIO_Init(GPIO_TypeDef  *GPIOx, GPIO_InitTypeDef *GPIO_Init);
277
void              HAL_GPIO_Init(GPIO_TypeDef  *GPIOx, GPIO_InitTypeDef *GPIO_Init);
296
void              HAL_GPIO_DeInit(GPIO_TypeDef  *GPIOx, uint32_t GPIO_Pin);
278
void              HAL_GPIO_DeInit(GPIO_TypeDef  *GPIOx, uint32_t GPIO_Pin);
297
 
279
 
298
/**
280
/**
299
  * @}
281
  * @}
300
  */
282
  */
301
 
283
 
302
/** @defgroup GPIO_Exported_Functions_Group2 IO operation functions
284
/** @defgroup GPIO_Exported_Functions_Group2 IO operation functions
303
 *  @brief    IO operation functions
285
  *  @brief    IO operation functions
304
 * @{
286
  * @{
305
 */
287
  */
306
   
288
 
307
/* IO operation functions *****************************************************/
289
/* IO operation functions *****************************************************/
308
GPIO_PinState     HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
290
GPIO_PinState     HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
309
void              HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
291
void              HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);
310
void              HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
292
void              HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
311
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
293
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
312
void              HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
294
void              HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
313
void              HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
295
void              HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
314
 
296
 
315
/**
297
/**
316
  * @}
298
  * @}
317
  */
299
  */
318
 
300
 
319
/**
301
/**
320
  * @}
302
  * @}
321
  */
303
  */
322
 
304
 
323
/**
305
/**
324
  * @}
306
  * @}
325
  */
307
  */
326
 
308
 
327
/**
309
/**
328
  * @}
310
  * @}
329
  */  
311
  */
330
 
312
 
331
#ifdef __cplusplus
313
#ifdef __cplusplus
332
}
314
}
333
#endif
315
#endif
334
 
316
 
335
#endif /* __STM32L1xx_HAL_GPIO_H */
317
#endif /* __STM32L1xx_HAL_GPIO_H */