935
|
1 /**
|
|
2 ******************************************************************************
|
|
3 * @file gpio.c
|
|
4 * @author heinrichs weikamp gmbh
|
|
5 * @version V0.0.1
|
|
6 * @date 08-Dec-2024
|
|
7 * @brief Definitions for GPIO operations (GPIO_V2)
|
|
8 *
|
|
9 @verbatim
|
|
10 ==============================================================================
|
|
11 ##### How to use #####
|
|
12 ==============================================================================
|
|
13 @endverbatim
|
|
14 ******************************************************************************
|
|
15 * @attention
|
|
16 *
|
|
17 * <h2><center>© COPYRIGHT(c) 2024 heinrichs weikamp</center></h2>
|
|
18 *
|
|
19 ******************************************************************************
|
|
20 */
|
|
21
|
|
22 /* Includes ------------------------------------------------------------------*/
|
|
23
|
|
24 #include "stm32f4xx_hal.h"
|
|
25 #include "gpio.h"
|
|
26
|
|
27 /* Exported variables --------------------------------------------------------*/
|
|
28 /* Private variables ---------------------------------------------------------*/
|
|
29
|
|
30 /* Private types -------------------------------------------------------------*/
|
|
31
|
|
32 /* Private function prototypes -----------------------------------------------*/
|
|
33
|
|
34 /* Exported functions --------------------------------------------------------*/
|
|
35 void GPIO_LEDs_VIBRATION_Init(void) {
|
|
36 GPIO_InitTypeDef GPIO_InitStructure;
|
|
37
|
|
38 __GPIOA_CLK_ENABLE();
|
|
39 GPIO_InitStructure.Pin = LED_CONTROL_PIN_RED;
|
|
40 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
|
|
41 GPIO_InitStructure.Pull = GPIO_PULLUP;
|
|
42 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
|
|
43 HAL_GPIO_Init( GPIOA, &GPIO_InitStructure);
|
|
44 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_RED, GPIO_PIN_SET);
|
|
45
|
|
46 GPIO_InitStructure.Pin = LED_CONTROL_PIN_GREEN;
|
|
47 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
|
|
48 GPIO_InitStructure.Pull = GPIO_PULLUP;
|
|
49 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
|
|
50 HAL_GPIO_Init( GPIOA, &GPIO_InitStructure);
|
|
51 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_GREEN, GPIO_PIN_SET);
|
|
52
|
|
53 GPIO_InitStructure.Pin = VIBRATION_CONTROL_PIN;
|
|
54 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
|
|
55 GPIO_InitStructure.Pull = GPIO_PULLDOWN;
|
|
56 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
|
|
57 HAL_GPIO_Init( GPIOA, &GPIO_InitStructure);
|
|
58 HAL_GPIO_WritePin( GPIOA, VIBRATION_CONTROL_PIN, GPIO_PIN_RESET);
|
|
59
|
|
60 __GPIOB_CLK_ENABLE();
|
|
61 GPIO_InitStructure.Pin = GPS_POWER_CONTROL_PIN;
|
|
62 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
|
|
63 GPIO_InitStructure.Pull = GPIO_PULLUP;
|
|
64 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
|
|
65 HAL_GPIO_Init( GPIOB, &GPIO_InitStructure);
|
|
66 HAL_GPIO_WritePin( GPIOB, GPS_POWER_CONTROL_PIN, GPIO_PIN_SET);
|
|
67
|
|
68 GPIO_InitStructure.Pin = GPS_BCKP_CONTROL_PIN;
|
|
69 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
|
|
70 GPIO_InitStructure.Pull = GPIO_PULLDOWN;
|
|
71 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
|
|
72 HAL_GPIO_Init( GPIOB, &GPIO_InitStructure);
|
|
73 HAL_GPIO_WritePin( GPIOB, GPS_BCKP_CONTROL_PIN, GPIO_PIN_RESET);
|
|
74 }
|
|
75
|
|
76 void GPIO_Power_MainCPU_Init(void) {
|
|
77 GPIO_InitTypeDef GPIO_InitStructure;
|
|
78 __GPIOC_CLK_ENABLE();
|
|
79 GPIO_InitStructure.Pin = MAINCPU_CONTROL_PIN;
|
|
80 GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
|
|
81 GPIO_InitStructure.Pull = GPIO_PULLUP;
|
|
82 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
|
|
83 HAL_GPIO_Init( GPIOC, &GPIO_InitStructure);
|
|
84 HAL_GPIO_WritePin( GPIOC, MAINCPU_CONTROL_PIN, GPIO_PIN_RESET);
|
|
85 }
|
|
86
|
|
87 void GPIO_Power_MainCPU_ON(void) {
|
|
88 HAL_GPIO_WritePin( GPIOC, MAINCPU_CONTROL_PIN, GPIO_PIN_RESET);
|
|
89 }
|
|
90
|
|
91 void GPIO_Power_MainCPU_OFF(void) {
|
|
92 HAL_GPIO_WritePin( GPIOC, MAINCPU_CONTROL_PIN, GPIO_PIN_SET);
|
|
93 }
|
|
94
|
|
95 #ifdef ENABLE_GPIO_V2
|
|
96 void GPIO_LED_GREEN_ON(void) {
|
|
97 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_GREEN, GPIO_PIN_RESET);
|
|
98 }
|
|
99
|
|
100 void GPIO_LED_GREEN_OFF(void) {
|
|
101 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_GREEN, GPIO_PIN_SET);
|
|
102 }
|
|
103
|
|
104 void GPIO_LED_RED_ON(void) {
|
|
105 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_RED, GPIO_PIN_RESET);
|
|
106 }
|
|
107
|
|
108 void GPIO_LED_RED_OFF(void) {
|
|
109 HAL_GPIO_WritePin( GPIOA, LED_CONTROL_PIN_RED, GPIO_PIN_SET);
|
|
110 }
|
|
111
|
|
112 void GPIO_VIBRATION_ON(void) {
|
|
113 HAL_GPIO_WritePin( GPIOA, VIBRATION_CONTROL_PIN, GPIO_PIN_SET);
|
|
114 }
|
|
115
|
|
116 void GPIO_VIBRATION_OFF(void) {
|
|
117 HAL_GPIO_WritePin( GPIOA, VIBRATION_CONTROL_PIN, GPIO_PIN_RESET);
|
|
118 }
|
|
119
|
|
120 void GPIO_GPS_ON(void) {
|
|
121 HAL_GPIO_WritePin( GPIOB, GPS_POWER_CONTROL_PIN, GPIO_PIN_RESET);
|
|
122 }
|
|
123
|
|
124 void GPIO_GPS_OFF(void) {
|
|
125 HAL_GPIO_WritePin( GPIOB, GPS_POWER_CONTROL_PIN, GPIO_PIN_SET);
|
|
126 }
|
|
127
|
|
128 void GPIO_GPS_BCKP_ON(void) {
|
|
129 HAL_GPIO_WritePin( GPIOB, GPS_BCKP_CONTROL_PIN, GPIO_PIN_SET);
|
|
130 }
|
|
131
|
|
132 void GPIO_GPS_BCKP_OFF(void) {
|
|
133 HAL_GPIO_WritePin( GPIOB, GPS_BCKP_CONTROL_PIN, GPIO_PIN_RESET);
|
|
134 }
|
|
135 #endif
|
|
136
|
|
137 /* Private functions ---------------------------------------------------------*/
|
|
138
|
|
139
|
|
140 /************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/
|