fe3820678ec081eb4b8aa5087aa916b1e4218471
[mTask.git] / int / nucleo-f767-blinky / cube / nucleo-f767-blinky / Src / gpio.c
1 /**
2 ******************************************************************************
3 * File Name : gpio.c
4 * Description : This file provides code for the configuration
5 * of all used GPIO pins.
6 ******************************************************************************
7 *
8 * COPYRIGHT(c) 2016 STMicroelectronics
9 *
10 * Redistribution and use in source and binary forms, with or without modification,
11 * are permitted provided that the following conditions are met:
12 * 1. Redistributions of source code must retain the above copyright notice,
13 * this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright notice,
15 * this list of conditions and the following disclaimer in the documentation
16 * and/or other materials provided with the distribution.
17 * 3. Neither the name of STMicroelectronics nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 ******************************************************************************
33 */
34
35 /* Includes ------------------------------------------------------------------*/
36 #include "gpio.h"
37 /* USER CODE BEGIN 0 */
38
39 /* USER CODE END 0 */
40
41 /*----------------------------------------------------------------------------*/
42 /* Configure GPIO */
43 /*----------------------------------------------------------------------------*/
44 /* USER CODE BEGIN 1 */
45
46 /* USER CODE END 1 */
47
48 /** Configure pins as
49 * Analog
50 * Input
51 * Output
52 * EVENT_OUT
53 * EXTI
54 * Free pins are configured automatically as Analog (this feature is enabled through
55 * the Code Generation settings)
56 PC1 ------> ETH_MDC
57 PA1 ------> ETH_REF_CLK
58 PA2 ------> ETH_MDIO
59 PA7 ------> ETH_CRS_DV
60 PC4 ------> ETH_RXD0
61 PC5 ------> ETH_RXD1
62 PB13 ------> ETH_TXD1
63 PA8 ------> USB_OTG_FS_SOF
64 PA9 ------> USB_OTG_FS_VBUS
65 PA10 ------> USB_OTG_FS_ID
66 PA11 ------> USB_OTG_FS_DM
67 PA12 ------> USB_OTG_FS_DP
68 PG11 ------> ETH_TX_EN
69 PG13 ------> ETH_TXD0
70 */
71 void MX_GPIO_Init(void)
72 {
73
74 GPIO_InitTypeDef GPIO_InitStruct;
75
76 /* GPIO Ports Clock Enable */
77 __HAL_RCC_GPIOE_CLK_ENABLE();
78 __HAL_RCC_GPIOC_CLK_ENABLE();
79 __HAL_RCC_GPIOF_CLK_ENABLE();
80 __HAL_RCC_GPIOH_CLK_ENABLE();
81 __HAL_RCC_GPIOA_CLK_ENABLE();
82 __HAL_RCC_GPIOB_CLK_ENABLE();
83 __HAL_RCC_GPIOG_CLK_ENABLE();
84 __HAL_RCC_GPIOD_CLK_ENABLE();
85
86 /*Configure GPIO pins : PE2 PE3 PE4 PE5
87 PE6 PE7 PE8 PE9
88 PE10 PE11 PE12 PE13
89 PE14 PE15 PE0 PE1 */
90 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
91 |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9
92 |GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13
93 |GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1;
94 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
95 GPIO_InitStruct.Pull = GPIO_NOPULL;
96 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
97
98 /*Configure GPIO pin : PtPin */
99 GPIO_InitStruct.Pin = User_Blue_Button_Pin;
100 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
101 GPIO_InitStruct.Pull = GPIO_NOPULL;
102 HAL_GPIO_Init(User_Blue_Button_GPIO_Port, &GPIO_InitStruct);
103
104 /*Configure GPIO pins : PF0 PF1 PF2 PF3
105 PF4 PF5 PF6 PF7
106 PF8 PF9 PF10 PF11
107 PF12 PF13 PF14 PF15 */
108 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
109 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7
110 |GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
111 |GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
112 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
113 GPIO_InitStruct.Pull = GPIO_NOPULL;
114 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
115
116 /*Configure GPIO pins : PC0 PC2 PC3 PC6
117 PC7 PC8 PC9 PC10
118 PC11 PC12 */
119 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_6
120 |GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10
121 |GPIO_PIN_11|GPIO_PIN_12;
122 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
123 GPIO_InitStruct.Pull = GPIO_NOPULL;
124 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
125
126 /*Configure GPIO pins : PCPin PCPin PCPin */
127 GPIO_InitStruct.Pin = RMII_MDC_Pin|RMII_RXD0_Pin|RMII_RXD1_Pin;
128 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
129 GPIO_InitStruct.Pull = GPIO_NOPULL;
130 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
131 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
132 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
133
134 /*Configure GPIO pins : PA0 PA3 PA4 PA5
135 PA6 PA15 */
136 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
137 |GPIO_PIN_6|GPIO_PIN_15;
138 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
139 GPIO_InitStruct.Pull = GPIO_NOPULL;
140 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
141
142 /*Configure GPIO pins : PAPin PAPin PAPin */
143 GPIO_InitStruct.Pin = RMII_REF_CLK_Pin|RMII_MDIO_Pin|RMII_CRS_DV_Pin;
144 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
145 GPIO_InitStruct.Pull = GPIO_NOPULL;
146 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
147 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
148 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
149
150 /*Configure GPIO pins : PBPin PBPin PBPin */
151 GPIO_InitStruct.Pin = LD1_Pin|LD3_Pin|LD2_Pin;
152 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
153 GPIO_InitStruct.Pull = GPIO_NOPULL;
154 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
155 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
156
157 /*Configure GPIO pins : PB1 PB2 PB10 PB11
158 PB12 PB15 PB4 PB5
159 PB6 PB8 PB9 */
160 GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10|GPIO_PIN_11
161 |GPIO_PIN_12|GPIO_PIN_15|GPIO_PIN_4|GPIO_PIN_5
162 |GPIO_PIN_6|GPIO_PIN_8|GPIO_PIN_9;
163 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
164 GPIO_InitStruct.Pull = GPIO_NOPULL;
165 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
166
167 /*Configure GPIO pins : PG0 PG1 PG2 PG3
168 PG4 PG5 PG8 PG9
169 PG10 PG12 PG14 PG15 */
170 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
171 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_9
172 |GPIO_PIN_10|GPIO_PIN_12|GPIO_PIN_14|GPIO_PIN_15;
173 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
174 GPIO_InitStruct.Pull = GPIO_NOPULL;
175 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
176
177 /*Configure GPIO pin : PtPin */
178 GPIO_InitStruct.Pin = RMII_TXD1_Pin;
179 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
180 GPIO_InitStruct.Pull = GPIO_NOPULL;
181 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
182 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
183 HAL_GPIO_Init(RMII_TXD1_GPIO_Port, &GPIO_InitStruct);
184
185 /*Configure GPIO pins : PD10 PD11 PD12 PD13
186 PD14 PD15 PD0 PD1
187 PD2 PD3 PD4 PD5
188 PD6 PD7 */
189 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13
190 |GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1
191 |GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
192 |GPIO_PIN_6|GPIO_PIN_7;
193 GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
194 GPIO_InitStruct.Pull = GPIO_NOPULL;
195 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
196
197 /*Configure GPIO pin : PtPin */
198 GPIO_InitStruct.Pin = USB_PowerSwitchOn_Pin;
199 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
200 GPIO_InitStruct.Pull = GPIO_NOPULL;
201 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
202 HAL_GPIO_Init(USB_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct);
203
204 /*Configure GPIO pin : PtPin */
205 GPIO_InitStruct.Pin = USB_OverCurrent_Pin;
206 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
207 GPIO_InitStruct.Pull = GPIO_NOPULL;
208 HAL_GPIO_Init(USB_OverCurrent_GPIO_Port, &GPIO_InitStruct);
209
210 /*Configure GPIO pins : PAPin PAPin PAPin PAPin */
211 GPIO_InitStruct.Pin = USB_SOF_Pin|USB_ID_Pin|USB_DM_Pin|USB_DP_Pin;
212 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
213 GPIO_InitStruct.Pull = GPIO_NOPULL;
214 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
215 GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
216 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
217
218 /*Configure GPIO pin : PtPin */
219 GPIO_InitStruct.Pin = USB_VBUS_Pin;
220 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
221 GPIO_InitStruct.Pull = GPIO_NOPULL;
222 HAL_GPIO_Init(USB_VBUS_GPIO_Port, &GPIO_InitStruct);
223
224 /*Configure GPIO pins : PGPin PGPin */
225 GPIO_InitStruct.Pin = RMII_TX_EN_Pin|RMII_TXD0_Pin;
226 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
227 GPIO_InitStruct.Pull = GPIO_NOPULL;
228 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
229 GPIO_InitStruct.Alternate = GPIO_AF11_ETH;
230 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
231
232 /*Configure GPIO pin Output Level */
233 HAL_GPIO_WritePin(GPIOB, LD1_Pin|LD3_Pin|LD2_Pin, GPIO_PIN_RESET);
234
235 /*Configure GPIO pin Output Level */
236 HAL_GPIO_WritePin(USB_PowerSwitchOn_GPIO_Port, USB_PowerSwitchOn_Pin, GPIO_PIN_RESET);
237
238 }
239
240 /* USER CODE BEGIN 2 */
241
242 /* USER CODE END 2 */
243
244 /**
245 * @}
246 */
247
248 /**
249 * @}
250 */
251
252 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/