• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 * Copyright (c) 2022 Talkweb Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *    http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 
16 #ifndef __HAL_GPIO_H
17 #define __HAL_GPIO_H
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #include "stm32f4xx_ll_bus.h"
24 #include "stm32f4xx_ll_gpio.h"
25 
26 #if defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || defined (GPIOF) || defined (GPIOG) || defined (GPIOH) || defined (GPIOI) || defined (GPIOJ) || defined (GPIOK)
27 
28 #if defined(USE_FULL_LL_DRIVER)
29 
30 typedef enum {
31     STM32_GPIO_PIN_0 = 0, /* Pin 0 selected    */
32     STM32_GPIO_PIN_1,     /* Pin 1 selected    */
33     STM32_GPIO_PIN_2,     /* Pin 2 selected    */
34     STM32_GPIO_PIN_3,     /* Pin 3 selected    */
35     STM32_GPIO_PIN_4,     /* Pin 4 selected    */
36     STM32_GPIO_PIN_5,     /* Pin 5 selected    */
37     STM32_GPIO_PIN_6,     /* Pin 6 selected    */
38     STM32_GPIO_PIN_7,     /* Pin 7 selected    */
39     STM32_GPIO_PIN_8,     /* Pin 8 selected    */
40     STM32_GPIO_PIN_9,     /* Pin 9 selected    */
41     STM32_GPIO_PIN_10,    /* Pin 10 selected   */
42     STM32_GPIO_PIN_11,    /* Pin 11 selected   */
43     STM32_GPIO_PIN_12,    /* Pin 12 selected   */
44     STM32_GPIO_PIN_13,    /* Pin 13 selected   */
45     STM32_GPIO_PIN_14,    /* Pin 14 selected   */
46     STM32_GPIO_PIN_15,    /* Pin 15 selected   */
47     STM32_GPIO_PIN_MAX,   /* Pin Max */
48 } STM32_GPIO_PIN;
49 
50 typedef enum {
51     STM32_GPIO_GROUP_A = 0,
52     STM32_GPIO_GROUP_B,
53     STM32_GPIO_GROUP_C,
54     STM32_GPIO_GROUP_D,
55     STM32_GPIO_GROUP_E,
56     STM32_GPIO_GROUP_F,
57     STM32_GPIO_GROUP_G,
58     STM32_GPIO_GROUP_H,
59     STM32_GPIO_GROUP_I,
60     STM32_GPIO_GROUP_MAX,
61 }STM32_GPIO_GROUP;
62 
LL_GPIO_ReadInputPin(GPIO_TypeDef * GPIOx,uint32_t pinMask)63 __STATIC_INLINE uint16_t LL_GPIO_ReadInputPin(GPIO_TypeDef *GPIOx, uint32_t pinMask)
64 {
65     return (uint32_t)(((READ_REG(GPIOx->IDR)) & pinMask) >> (POSITION_VAL(pinMask)));
66 }
67 
68 GPIO_TypeDef* LL_GET_GPIOX(STM32_GPIO_GROUP group);
69 uint32_t LL_GET_HAL_PIN(STM32_GPIO_PIN pin);
70 
71 #endif /* USE_FULL_LL_DRIVER */
72 
73 #endif /* defined (GPIOA) || defined (GPIOB) || defined (GPIOC) || defined (GPIOD) || defined (GPIOE) || \
74     defined (GPIOF) || defined (GPIOG) || defined (GPIOH) || defined (GPIOI) || defined (GPIOJ) || defined (GPIOK) */
75 
76 #ifdef __cplusplus
77 }
78 #endif
79 
80 #endif /* __HAL_GPIO_H */
81