Subversion Repositories EngineBay2

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/**
2
  ******************************************************************************
3
  * @file    stm32l1xx_hal_gpio_ex.h
4
  * @author  MCD Application Team
5
  * @version V1.2.0
6
  * @date    01-July-2016
7
  * @brief   Header file of GPIO HAL Extension module.
8
  ******************************************************************************
9
  * @attention
10
  *
11
  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
12
  *
13
  * Redistribution and use in source and binary forms, with or without modification,
14
  * are permitted provided that the following conditions are met:
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.
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
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
  *
35
  ******************************************************************************
36
  */
37
 
38
/* Define to prevent recursive inclusion -------------------------------------*/
39
#ifndef __STM32L1xx_HAL_GPIO_EX_H
40
#define __STM32L1xx_HAL_GPIO_EX_H
41
 
42
#ifdef __cplusplus
43
 extern "C" {
44
#endif
45
 
46
/* Includes ------------------------------------------------------------------*/
47
#include "stm32l1xx_hal_def.h"
48
 
49
/** @addtogroup STM32L1xx_HAL_Driver
50
  * @{
51
  */
52
 
53
/** @defgroup GPIOEx GPIOEx
54
  * @{
55
  */
56
 
57
/* Exported types ------------------------------------------------------------*/
58
/* Exported constants --------------------------------------------------------*/
59
/** @defgroup GPIOEx_Exported_Constants GPIOEx Exported Constants
60
  * @{
61
  */
62
 
63
/** @defgroup GPIOEx_Alternate_function_selection GPIOEx Alternate function selection
64
  * @{
65
  */
66
 
67
/* AF 0 selection */
68
#define GPIO_AF0_MCO           ((uint8_t)0x00)  /*!< MCO Alternate Function mapping                 */
69
#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  */
71
#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             */
73
 
74
/* AF 1 selection */
75
#define GPIO_AF1_TIM2           ((uint8_t)0x01)  /*!< TIM2 Alternate Function mapping */
76
 
77
/* AF 2 selection */
78
#define GPIO_AF2_TIM3           ((uint8_t)0x02)  /*!< TIM3 Alternate Function mapping */
79
#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)
81
#define GPIO_AF2_TIM5           ((uint8_t)0x02)  /*!< TIM5 Alternate Function mapping */
82
 
83
#endif /*  STM32L151xCA || STM32L151xD || STM32L152xCA || STM32L152xD || STM32L162xCA || STM32L162xD ...STM32L151xC */ 
84
 
85
/* AF 3 selection */
86
#define GPIO_AF3_TIM9            ((uint8_t)0x03)  /*!< TIM9 Alternate Function mapping */
87
#define GPIO_AF3_TIM10           ((uint8_t)0x03)  /*!< TIM10 Alternate Function mapping */
88
#define GPIO_AF3_TIM11           ((uint8_t)0x03)  /*!< TIM11 Alternate Function mapping */
89
 
90
 
91
/* AF 4 selection */
92
#define GPIO_AF4_I2C1          ((uint8_t)0x04)  /*!< I2C1 Alternate Function mapping */
93
#define GPIO_AF4_I2C2          ((uint8_t)0x04)  /*!< I2C2 Alternate Function mapping */
94
 
95
/* AF 5 selection */
96
#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 */
98
 
99
/* AF 6 selection */
100
#if defined (STM32L100xC) || defined (STM32L151xC) || defined (STM32L151xCA) || defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\
101
    defined (STM32L152xC) || defined (STM32L152xCA) || defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\
102
    defined (STM32L162xC) || defined (STM32L162xCA) || defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)
103
 
104
#define GPIO_AF6_SPI3          ((uint8_t)0x06)  /*!< SPI3/I2S3 Alternate Function mapping */
105
 
106
#endif /* STM32L100xC || STM32L151xC || (...) || STM32L162xD || STM32L162xE || STM32L162xDX */
107
 
108
 
109
/* AF 7 selection */
110
#define GPIO_AF7_USART1        ((uint8_t)0x07)  /*!< USART1 Alternate Function mapping  */
111
#define GPIO_AF7_USART2        ((uint8_t)0x07)  /*!< USART2 Alternate Function mapping  */
112
#define GPIO_AF7_USART3        ((uint8_t)0x07)  /*!< USART3 Alternate Function mapping  */
113
 
114
/* AF 8 selection */
115
#if defined (STM32L151xD) || defined (STM32L151xE) || defined (STM32L151xDX) ||\
116
    defined (STM32L152xD) || defined (STM32L152xE) || defined (STM32L152xDX) ||\
117
    defined (STM32L162xD) || defined (STM32L162xE) || defined (STM32L162xDX)
118
 
119
#define GPIO_AF8_UART4        ((uint8_t)0x08)  /*!< UART4 Alternate Function mapping  */
120
#define GPIO_AF8_UART5        ((uint8_t)0x08)  /*!< UART5 Alternate Function mapping  */
121
 
122
#endif /* STM32L151xD || STM32L151xE || STM32L151xDX || STM32L152xD || STM32L 152xE || STM32L162xD || STM32L162xE || STM32L162xDX */
123
 
124
 
125
/* AF 9 selection */
126
 
127
/* AF 10 selection */
128
 
129
/* AF 11 selection */
130
#if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC) ||\
131
    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)
133
 
134
#define GPIO_AF11_LCD            ((uint8_t)0x0B)  /*!< LCD Alternate Function mapping */
135
 
136
#endif /* STM32L100xB || STM32L100xBA || STM32L100xC || (...) || STM32L162xCA || STM32L162xD || STM32L162xE || STM32L162xDX */
137
 
138
/* AF 12 selection */
139
#if defined (STM32L151xD) || defined (STM32L152xD) || defined (STM32L162xD)
140
 
141
#define GPIO_AF12_FSMC            ((uint8_t)0x0C)  /*!< FSMC Alternate Function mapping */
142
#define GPIO_AF12_SDIO            ((uint8_t)0x0C)  /*!< SDIO Alternate Function mapping */
143
 
144
#endif /* STM32L151xD || STM32L152xD || STM32L162xD */
145
/* AF 13 selection */
146
 
147
/* AF 14 selection */
148
#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 */
150
#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 */
152
 
153
/* AF 15 selection */
154
#define GPIO_AF15_EVENTOUT      ((uint8_t)0x0F)  /*!< EVENTOUT Alternate Function mapping */
155
 
156
/**
157
  * @}
158
  */
159
 
160
/**
161
  * @}
162
  */
163
 
164
/** @defgroup GPIOEx_Private_Macros GPIOEx Private Macros
165
  * @{
166
  */
167
 
168
 
169
#define IS_GPIO_AF(AF)   ((AF) <= (uint8_t)0x0F)
170
 
171
 
172
#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)
173
#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
174
                                   ((__GPIOx__) == (GPIOB))? 1U :\
175
                                   ((__GPIOx__) == (GPIOC))? 2U :\
176
                                   ((__GPIOx__) == (GPIOD))? 3U :\
177
                                   ((__GPIOx__) == (GPIOE))? 4U :\
178
                                   ((__GPIOx__) == (GPIOH))? 5U :\
179
                                   ((__GPIOx__) == (GPIOF))? 6U : 7U)
180
#endif 
181
 
182
#if defined (STM32L151xB) || defined (STM32L151xBA) || defined (STM32L151xC) || defined (STM32L152xB) || defined (STM32L152xBA) || defined (STM32L152xC) || defined (STM32L162xC)
183
#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
184
                                   ((__GPIOx__) == (GPIOB))? 1U :\
185
                                   ((__GPIOx__) == (GPIOC))? 2U :\
186
                                   ((__GPIOx__) == (GPIOD))? 3U :\
187
                                   ((__GPIOx__) == (GPIOE))? 4U : 5U)
188
#endif 
189
 
190
#if defined (STM32L100xB) || defined (STM32L100xBA) || defined (STM32L100xC)
191
#define GPIO_GET_INDEX(__GPIOx__) (((__GPIOx__) == (GPIOA))? 0U :\
192
                                   ((__GPIOx__) == (GPIOB))? 1U :\
193
                                   ((__GPIOx__) == (GPIOC))? 2U :\
194
                                   ((__GPIOx__) == (GPIOD))? 3U : 5U)
195
#endif 
196
 
197
 
198
 
199
/**
200
  * @}
201
  */
202
 
203
 
204
 
205
/* Exported macro ------------------------------------------------------------*/
206
/* Exported functions --------------------------------------------------------*/
207
 
208
 
209
/**
210
  * @}
211
  */
212
 
213
/**
214
  * @}
215
  */
216
 
217
#ifdef __cplusplus
218
}
219
#endif
220
 
221
#endif /* __STM32L1xx_HAL_GPIO_EX_H */
222
 
223
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/