Subversion Repositories EngineBay2

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 28
Line 1... Line 1...
1
/**
1
/**
2
  ******************************************************************************
2
  ******************************************************************************
3
  * @file    stm32l1xx_hal_gpio_ex.h
3
  * @file    stm32l1xx_hal_gpio_ex.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 Extension module.
5
  * @brief   Header file of GPIO HAL Extension 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_EX_H
21
#ifndef __STM32L1xx_HAL_GPIO_EX_H
40
#define __STM32L1xx_HAL_GPIO_EX_H
22
#define __STM32L1xx_HAL_GPIO_EX_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 50... Line 32...
50
  * @{
32
  * @{
51
  */
33
  */
52
 
34
 
53
/** @defgroup GPIOEx GPIOEx
35
/** @defgroup GPIOEx GPIOEx
54
  * @{
36
  * @{
55
  */
37
  */
56
 
38
 
57
/* Exported types ------------------------------------------------------------*/
39
/* Exported types ------------------------------------------------------------*/
58
/* Exported constants --------------------------------------------------------*/
40
/* Exported constants --------------------------------------------------------*/
59
/** @defgroup GPIOEx_Exported_Constants GPIOEx Exported Constants
41
/** @defgroup GPIOEx_Exported_Constants GPIOEx Exported Constants
60
  * @{
42
  * @{
61
  */
43
  */
62
 
44
 
63
/** @defgroup GPIOEx_Alternate_function_selection GPIOEx Alternate function selection
45
/** @defgroup GPIOEx_Alternate_function_selection GPIOEx Alternate function selection
64
  * @{
46
  * @{
65
  */
47
  */
66
 
48
 
67
/* AF 0 selection */
49
/* AF 0 selection */
68
#define GPIO_AF0_MCO           ((uint8_t)0x00)  /*!< MCO Alternate Function mapping                 */
50
#define GPIO_AF0_MCO           ((uint8_t)0x00)  /*!< MCO Alternate Function mapping                 */
69
#define GPIO_AF0_TAMPER        ((uint8_t)0x00)  /*!< TAMPER  Alternate Function mapping             */
51
#define GPIO_AF0_TAMPER        ((uint8_t)0x00)  /*!< TAMPER  Alternate Function mapping             */
70
#define GPIO_AF0_SWJ           ((uint8_t)0x00)  /*!< SWJ (SWD and JTAG) Alternate Function mapping  */
52
#define GPIO_AF0_SWJ           ((uint8_t)0x00)  /*!< SWJ (SWD and JTAG) Alternate Function mapping  */
71
#define GPIO_AF0_TRACE         ((uint8_t)0x00)  /*!< TRACE Alternate Function mapping               */
53
#define GPIO_AF0_TRACE         ((uint8_t)0x00)  /*!< TRACE Alternate Function mapping               */
72
#define GPIO_AF0_RTC_50Hz      ((uint8_t)0x00)  /*!< RTC_OUT Alternate Function mapping             */
54
#define GPIO_AF0_RTC_50Hz      ((uint8_t)0x00)  /*!< RTC_OUT Alternate Function mapping             */
73
   
55
 
74
/* AF 1 selection */
56
/* AF 1 selection */
75
#define GPIO_AF1_TIM2           ((uint8_t)0x01)  /*!< TIM2 Alternate Function mapping */
57
#define GPIO_AF1_TIM2           ((uint8_t)0x01)  /*!< TIM2 Alternate Function mapping */
76
 
58
 
77
/* AF 2 selection */
59
/* AF 2 selection */
78
#define GPIO_AF2_TIM3           ((uint8_t)0x02)  /*!< TIM3 Alternate Function mapping */
60
#define GPIO_AF2_TIM3           ((uint8_t)0x02)  /*!< TIM3 Alternate Function mapping */
79
#define GPIO_AF2_TIM4           ((uint8_t)0x02)  /*!< TIM4 Alternate Function mapping */
61
#define GPIO_AF2_TIM4           ((uint8_t)0x02)  /*!< TIM4 Alternate Function mapping */
80
#if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) || defined (STM32L162xC) || defined (STM32L152xC) || defined (STM32L151xC)
62
#if defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L151xE) || defined (STM32L151xDX) || defined (STM32L152xE) || defined (STM32L152xDX) || defined (STM32L162xE) || defined (STM32L162xDX) || defined (STM32L162xC) || defined (STM32L152xC) || defined (STM32L151xC)
81
#define GPIO_AF2_TIM5           ((uint8_t)0x02)  /*!< TIM5 Alternate Function mapping */
63
#define GPIO_AF2_TIM5           ((uint8_t)0x02)  /*!< TIM5 Alternate Function mapping */
82
 
64
 
83
#endif /*  STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD ...STM32L151xC */ 
65
#endif /*  STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD ...STM32L151xC */
84
 
66
 
85
/* AF 3 selection */
67
/* AF 3 selection */
86
#define GPIO_AF3_TIM9            ((uint8_t)0x03)  /*!< TIM9 Alternate Function mapping */
68
#define GPIO_AF3_TIM9            ((uint8_t)0x03)  /*!< TIM9 Alternate Function mapping */
87
#define GPIO_AF3_TIM10           ((uint8_t)0x03)  /*!< TIM10 Alternate Function mapping */
69
#define GPIO_AF3_TIM10           ((uint8_t)0x03)  /*!< TIM10 Alternate Function mapping */
88
#define GPIO_AF3_TIM11           ((uint8_t)0x03)  /*!< TIM11 Alternate Function mapping */
70
#define GPIO_AF3_TIM11           ((uint8_t)0x03)  /*!< TIM11 Alternate Function mapping */
89
 
71
 
90
 
72
 
91
/* AF 4 selection */
73
/* AF 4 selection */
92
#define GPIO_AF4_I2C1          ((uint8_t)0x04)  /*!< I2C1 Alternate Function mapping */
74
#define GPIO_AF4_I2C1          ((uint8_t)0x04)  /*!< I2C1 Alternate Function mapping */
93
#define GPIO_AF4_I2C2          ((uint8_t)0x04)  /*!< I2C2 Alternate Function mapping */
75
#define GPIO_AF4_I2C2          ((uint8_t)0x04)  /*!< I2C2 Alternate Function mapping */
94
 
76
 
95
/* AF 5 selection */
77
/* AF 5 selection */
96
#define GPIO_AF5_SPI1          ((uint8_t)0x05)  /*!< SPI1/I2S1 Alternate Function mapping      */
78
#define GPIO_AF5_SPI1          ((uint8_t)0x05)  /*!< SPI1/I2S1 Alternate Function mapping      */
97
#define GPIO_AF5_SPI2          ((uint8_t)0x05)  /*!< SPI2/I2S2 Alternate Function mapping */
79
#define GPIO_AF5_SPI2          ((uint8_t)0x05)  /*!< SPI2/I2S2 Alternate Function mapping */
98
 
80
 
99
/* AF 6 selection */
81
/* AF 6 selection */
100
#if defined (STM32L100xC) || defined (STM32L151xC) || defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\
82
#if defined (STM32L100xC) || defined (STM32L151xC) || defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\
101
    defined (STM32L152xC) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\
83
    defined (STM32L152xC) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\
102
    defined (STM32L162xC) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)
84
    defined (STM32L162xC) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)
103
   
85
 
104
#define GPIO_AF6_SPI3          ((uint8_t)0x06)  /*!< SPI3/I2S3 Alternate Function mapping */
86
#define GPIO_AF6_SPI3          ((uint8_t)0x06)  /*!< SPI3/I2S3 Alternate Function mapping */
105
 
87
 
106
#endif /* STM32L100xC || STM32L151xC || (...) || STM32L162xD || STM32L162xE || STM32L162xDX */
88
#endif /* STM32L100xC || STM32L151xC || (...) || STM32L162xD || STM32L162xE || STM32L162xDX */
107
 
89
 
108
 
90
 
109
/* AF 7 selection */
91
/* AF 7 selection */
110
#define GPIO_AF7_USART1        ((uint8_t)0x07)  /*!< USART1 Alternate Function mapping  */
92
#define GPIO_AF7_USART1        ((uint8_t)0x07)  /*!< USART1 Alternate Function mapping  */
111
#define GPIO_AF7_USART2        ((uint8_t)0x07)  /*!< USART2 Alternate Function mapping  */
93
#define GPIO_AF7_USART2        ((uint8_t)0x07)  /*!< USART2 Alternate Function mapping  */
112
#define GPIO_AF7_USART3        ((uint8_t)0x07)  /*!< USART3 Alternate Function mapping  */
94
#define GPIO_AF7_USART3        ((uint8_t)0x07)  /*!< USART3 Alternate Function mapping  */
113
 
95
 
114
/* AF 8 selection */
96
/* AF 8 selection */
115
#if defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\
97
#if defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\
116
    defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\
98
    defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\
117
    defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)
99
    defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)
118
   
100
 
119
#define GPIO_AF8_UART4        ((uint8_t)0x08)  /*!< UART4 Alternate Function mapping  */
101
#define GPIO_AF8_UART4        ((uint8_t)0x08)  /*!< UART4 Alternate Function mapping  */
120
#define GPIO_AF8_UART5        ((uint8_t)0x08)  /*!< UART5 Alternate Function mapping  */
102
#define GPIO_AF8_UART5        ((uint8_t)0x08)  /*!< UART5 Alternate Function mapping  */
121
 
103
 
122
#endif /* STM32L151xD || STM32L151xE || STM32L151xDX || STM32L152xD || STM32L 152xE || STM32L162xD || STM32L162xE || STM32L162xDX */
104
#endif /* STM32L151xD || STM32L151xE || STM32L151xDX || STM32L152xD || STM32L 152xE || STM32L162xD || STM32L162xE || STM32L162xDX */
123
 
105
 
124
 
106
 
125
/* AF 9 selection */
107
/* AF 9 selection */
126
 
108
 
127
/* AF 10 selection */
109
/* AF 10 selection */
128
 
110
 
129
/* AF 11 selection */
111
/* AF 11 selection */
130
#if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
112
#if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
131
    defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\
113
    defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\
132
    defined (STM32L162xC) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)
114
    defined (STM32L162xC) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)
133
 
115
 
134
#define GPIO_AF11_LCD            ((uint8_t)0x0B)  /*!< LCD Alternate Function mapping */
116
#define GPIO_AF11_LCD            ((uint8_t)0x0B)  /*!< LCD Alternate Function mapping */
135
 
117
 
136
#endif /* STM32L100xB || STM32L100xBA || STM32L100xC || (...) || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */
118
#endif /* STM32L100xB || STM32L100xBA || STM32L100xC || (...) || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */
137
 
119
 
138
/* AF 12 selection */
120
/* AF 12 selection */
139
#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
121
#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
140
   
122
 
141
#define GPIO_AF12_FSMC            ((uint8_t)0x0C)  /*!< FSMC Alternate Function mapping */
123
#define GPIO_AF12_FSMC            ((uint8_t)0x0C)  /*!< FSMC Alternate Function mapping */
142
#define GPIO_AF12_SDIO            ((uint8_t)0x0C)  /*!< SDIO Alternate Function mapping */
124
#define GPIO_AF12_SDIO            ((uint8_t)0x0C)  /*!< SDIO Alternate Function mapping */
143
 
125
 
144
#endif /* STM32L151xD || STM32L152xD || STM32L162xD */
126
#endif /* STM32L151xD || STM32L152xD || STM32L162xD */
145
/* AF 13 selection */
127
/* AF 13 selection */
146
 
128
 
147
/* AF 14 selection */
129
/* AF 14 selection */
148
#define GPIO_AF14_TIM_IC1         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */
130
#define GPIO_AF14_TIM_IC1         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */
149
#define GPIO_AF14_TIM_IC2         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */
131
#define GPIO_AF14_TIM_IC2         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */
150
#define GPIO_AF14_TIM_IC3         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */
132
#define GPIO_AF14_TIM_IC3         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */
151
#define GPIO_AF14_TIM_IC4         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */
133
#define GPIO_AF14_TIM_IC4         ((uint8_t)0x0E)  /*!< TIMER INPUT CAPTURE Alternate Function mapping */
152
 
134
 
153
/* AF 15 selection */
135
/* AF 15 selection */
154
#define GPIO_AF15_EVENTOUT      ((uint8_t)0x0F)  /*!< EVENTOUT Alternate Function mapping */
136
#define GPIO_AF15_EVENTOUT      ((uint8_t)0x0F)  /*!< EVENTOUT Alternate Function mapping */
155
 
137
 
156
/**
138
/**
157
  * @}
139
  * @}
158
  */
140
  */
159
 
141
 
160
/**
142
/**
161
  * @}
143
  * @}
162
  */
144
  */
163
 
145
 
Line 175... Line 157...
175
                                   ((__GPIOx__) == (GPIOC))? 2U :\
157
                                   ((__GPIOx__) == (GPIOC))? 2U :\
176
                                   ((__GPIOx__) == (GPIOD))? 3U :\
158
                                   ((__GPIOx__) == (GPIOD))? 3U :\
177
                                   ((__GPIOx__) == (GPIOE))? 4U :\
159
                                   ((__GPIOx__) == (GPIOE))? 4U :\
178
                                   ((__GPIOx__) == (GPIOH))? 5U :\
160
                                   ((__GPIOx__) == (GPIOH))? 5U :\
179
                                   ((__GPIOx__) == (GPIOF))? 6U : 7U)
161
                                   ((__GPIOx__) == (GPIOF))? 6U : 7U)
180
#endif 
162
#endif
181
 
163
 
182
#if defined (STM32L151xB) || defined (STM32L151xBA) || defined (STM32L151xC) || defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L162xC)
164
#if defined (STM32L151xB) || defined (STM32L151xBA) || defined (STM32L151xC) || defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L162xC)
183
#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
165
#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
184
                                   ((__GPIOx__) == (GPIOB))? 1U :\
166
                                   ((__GPIOx__) == (GPIOB))? 1U :\
185
                                   ((__GPIOx__) == (GPIOC))? 2U :\
167
                                   ((__GPIOx__) == (GPIOC))? 2U :\
186
                                   ((__GPIOx__) == (GPIOD))? 3U :\
168
                                   ((__GPIOx__) == (GPIOD))? 3U :\
187
                                   ((__GPIOx__) == (GPIOE))? 4U : 5U)
169
                                   ((__GPIOx__) == (GPIOE))? 4U : 5U)
188
#endif 
170
#endif
189
 
171
 
190
#if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC)
172
#if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC)
191
#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
173
#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
192
                                   ((__GPIOx__) == (GPIOB))? 1U :\
174
                                   ((__GPIOx__) == (GPIOB))? 1U :\
193
                                   ((__GPIOx__) == (GPIOC))? 2U :\
175
                                   ((__GPIOx__) == (GPIOC))? 2U :\
194
                                   ((__GPIOx__) == (GPIOD))? 3U : 5U)
176
                                   ((__GPIOx__) == (GPIOD))? 3U : 5U)
195
#endif 
177
#endif
196
 
178
 
197
 
179
 
198
 
180
 
199
/**
181
/**
200
  * @}
182
  * @}
201
  */
183
  */
202
 
184
 
203
 
185
 
204
 
186
 
205
/* Exported macro ------------------------------------------------------------*/
187
/* Exported macro ------------------------------------------------------------*/
206
/* Exported functions --------------------------------------------------------*/
188
/* Exported functions --------------------------------------------------------*/
207
 
189
 
208
 
190
 
209
/**
191
/**
210
  * @}
192
  * @}
211
  */
193
  */
212
 
194
 
213
/**
195
/**
214
  * @}
196
  * @}
215
  */
197
  */
216
 
198
 
217
#ifdef __cplusplus
199
#ifdef __cplusplus
218
}
200
}
219
#endif
201
#endif
220
 
202
 
221
#endif /* __STM32L1xx_HAL_GPIO_EX_H */
203
#endif /* __STM32L1xx_HAL_GPIO_EX_H */