Mercurial > public > ostc4
annotate Discovery/Src/stm32f4xx_hal_msp_hw2.c @ 124:4b355396557a FlipDisplay
Change GPIO speed for SPI communication as recommended by STM32 Errata
author | Ideenmodellierer |
---|---|
date | Sun, 27 Jan 2019 22:17:16 +0100 |
parents | 5f11787b4f42 |
children | 626191e1fed1 |
rev | line source |
---|---|
38 | 1 /////////////////////////////////////////////////////////////////////////////// |
2 /// -*- coding: UTF-8 -*- | |
3 /// | |
4 /// \file Discovery/Src/stm32f4xx_hal_msp_hw2.c | |
5 /// \brief This file provides code for the MSP Initialization and de-Initialization codes. | |
6 /// \author Heinrichs Weikamp gmbh | |
7 /// \date 2018 | |
8 /// | |
9 /// \details | |
10 /// | |
11 /// $Id$ | |
12 /////////////////////////////////////////////////////////////////////////////// | |
13 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh | |
14 /// | |
15 /// This program is free software: you can redistribute it and/or modify | |
16 /// it under the terms of the GNU General Public License as published by | |
17 /// the Free Software Foundation, either version 3 of the License, or | |
18 /// (at your option) any later version. | |
19 /// | |
20 /// This program is distributed in the hope that it will be useful, | |
21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
23 /// GNU General Public License for more details. | |
24 /// | |
25 /// You should have received a copy of the GNU General Public License | |
26 /// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
27 /////////////////////////////////////////////////////////////////////////////// | |
28 /// \par Copyright (c) 2014 STMicroelectronics | |
29 /// | |
30 /// Redistribution and use in source and binary forms, with or without modification, | |
31 /// are permitted provided that the following conditions are met: | |
32 /// 1. Redistributions of source code must retain the above copyright notice, | |
33 /// this list of conditions and the following disclaimer. | |
34 /// 2. Redistributions in binary form must reproduce the above copyright notice, | |
35 /// this list of conditions and the following disclaimer in the documentation | |
36 /// and/or other materials provided with the distribution. | |
37 /// 3. Neither the name of STMicroelectronics nor the names of its contributors | |
38 /// may be used to endorse or promote products derived from this software | |
39 /// without specific prior written permission. | |
40 /// | |
41 /// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
42 /// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
43 /// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
44 /// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | |
45 /// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
46 /// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |
47 /// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |
48 /// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |
49 /// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
50 /// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
51 /////////////////////////////////////////////////////////////////////////////// | |
52 | |
53 /* Includes ------------------------------------------------------------------*/ | |
54 #include "stm32f4xx_hal.h" | |
55 #include "ostc.h" | |
56 | |
57 DMA_HandleTypeDef hdma_spi1_tx; | |
58 | |
59 DMA_HandleTypeDef hdma_spi1_rx; | |
60 | |
61 /** | |
62 * Initializes the Global MSP. | |
63 */ | |
64 void HAL_MspInit(void) | |
65 { | |
66 /* USER CODE BEGIN MspInit 0 */ | |
67 /* USER CODE END MspInit 0 */ | |
68 | |
69 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2); | |
70 | |
71 /* System interrupt init*/ | |
72 /** SysTick_IRQn interrupt configuration | |
73 */ | |
74 HAL_NVIC_SetPriority(SysTick_IRQn, 1, 0); | |
75 | |
76 /* USER CODE BEGIN MspInit 1 */ | |
77 /* always set priority right */ | |
78 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2); | |
79 /* USER CODE END MspInit 1 */ | |
80 } | |
81 | |
82 void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d) | |
83 { | |
84 | |
85 if(hdma2d->Instance==DMA2D) | |
86 { | |
87 /* USER CODE BEGIN DMA2D_MspInit 0 */ | |
88 | |
89 /* USER CODE END DMA2D_MspInit 0 */ | |
90 /* Peripheral clock enable */ | |
91 __DMA2D_CLK_ENABLE(); | |
92 /* USER CODE BEGIN DMA2D_MspInit 1 */ | |
93 HAL_NVIC_SetPriority(DMA2D_IRQn, 1, 2); | |
94 HAL_NVIC_EnableIRQ(DMA2D_IRQn); | |
95 /* USER CODE END DMA2D_MspInit 1 */ | |
96 } | |
97 | |
98 } | |
99 | |
100 void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d) | |
101 { | |
102 | |
103 if(hdma2d->Instance==DMA2D) | |
104 { | |
105 /* USER CODE BEGIN DMA2D_MspDeInit 0 */ | |
106 | |
107 /* USER CODE END DMA2D_MspDeInit 0 */ | |
108 /* Peripheral clock disable */ | |
109 __DMA2D_CLK_DISABLE(); | |
110 /* USER CODE BEGIN DMA2D_MspDeInit 1 */ | |
111 __DMA2D_RELEASE_RESET(); | |
112 /* USER CODE END DMA2D_MspDeInit 1 */ | |
113 } | |
114 | |
115 } | |
116 | |
117 void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc) | |
118 { | |
119 | |
120 GPIO_InitTypeDef GPIO_InitStruct; | |
121 if(hltdc->Instance==LTDC) | |
122 { | |
123 /* USER CODE BEGIN LTDC_MspInit 0 */ | |
124 __GPIOE_CLK_ENABLE(); | |
125 __GPIOF_CLK_ENABLE(); | |
126 __GPIOG_CLK_ENABLE(); | |
127 __GPIOH_CLK_ENABLE(); | |
128 __GPIOI_CLK_ENABLE(); | |
129 | |
130 /* USER CODE END LTDC_MspInit 0 */ | |
131 /* Peripheral clock enable */ | |
132 __LTDC_CLK_ENABLE(); | |
133 | |
134 /**LTDC GPIO Configuration | |
135 PE4 ------> LTDC_B0 | |
136 PE5 ------> LTDC_G0 | |
137 PE6 ------> LTDC_G1 | |
138 PI9 ------> LTDC_VSYNC | |
139 PI10 ------> LTDC_HSYNC | |
140 PF10 ------> LTDC_DE | |
141 PH2 ------> LTDC_R0 | |
142 PH3 ------> LTDC_R1 | |
143 PH8 ------> LTDC_R2 | |
144 PH9 ------> LTDC_R3 | |
145 PH10 ------> LTDC_R4 | |
146 PH11 ------> LTDC_R5 | |
147 PH12 ------> LTDC_R6 | |
148 PG6 ------> LTDC_R7 | |
149 PG7 ------> LTDC_CLK | |
150 PH13 ------> LTDC_G2 | |
151 PH14 ------> LTDC_G3 | |
152 PH15 ------> LTDC_G4 | |
153 PI0 ------> LTDC_G5 | |
154 PI1 ------> LTDC_G6 | |
155 PI2 ------> LTDC_G7 | |
156 PG10 ------> LTDC_B2 | |
157 PG11 ------> LTDC_B3 | |
158 PG12 ------> LTDC_B1 | |
159 PI4 ------> LTDC_B4 | |
160 PI5 ------> LTDC_B5 | |
161 PI6 ------> LTDC_B6 | |
162 PI7 ------> LTDC_B7 | |
163 */ | |
164 GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6; | |
165 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
166 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
167 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
168 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; | |
169 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); | |
170 | |
171 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_1 | |
172 |GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6 | |
173 |GPIO_PIN_7; | |
174 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
175 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
176 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
177 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; | |
178 HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); | |
179 | |
180 GPIO_InitStruct.Pin = GPIO_PIN_10; | |
181 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
182 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
183 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
184 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; | |
185 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |
186 | |
187 GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_8|GPIO_PIN_9 | |
188 |GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13 | |
189 |GPIO_PIN_14|GPIO_PIN_15; | |
190 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
191 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
192 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
193 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; | |
194 HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); | |
195 | |
196 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_11 | |
197 |GPIO_PIN_12; | |
198 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
199 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
200 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
201 GPIO_InitStruct.Alternate = GPIO_AF14_LTDC; | |
202 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); | |
203 | |
204 /* USER CODE BEGIN LTDC_MspInit 1 */ | |
205 | |
206 /* USER CODE END LTDC_MspInit 1 */ | |
207 } | |
208 | |
209 } | |
210 | |
211 void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc) | |
212 { | |
213 | |
214 if(hltdc->Instance==LTDC) | |
215 { | |
216 /* USER CODE BEGIN LTDC_MspDeInit 0 */ | |
217 | |
218 /* USER CODE END LTDC_MspDeInit 0 */ | |
219 /* Peripheral clock disable */ | |
220 __LTDC_CLK_DISABLE(); | |
221 | |
222 /**LTDC GPIO Configuration | |
223 PE4 ------> LTDC_B0 | |
224 PE5 ------> LTDC_G0 | |
225 PE6 ------> LTDC_G1 | |
226 PI9 ------> LTDC_VSYNC | |
227 PI10 ------> LTDC_HSYNC | |
228 PF10 ------> LTDC_DE | |
229 PH2 ------> LTDC_R0 | |
230 PH3 ------> LTDC_R1 | |
231 PH8 ------> LTDC_R2 | |
232 PH9 ------> LTDC_R3 | |
233 PH10 ------> LTDC_R4 | |
234 PH11 ------> LTDC_R5 | |
235 PH12 ------> LTDC_R6 | |
236 PG6 ------> LTDC_R7 | |
237 PG7 ------> LTDC_CLK | |
238 PH13 ------> LTDC_G2 | |
239 PH14 ------> LTDC_G3 | |
240 PH15 ------> LTDC_G4 | |
241 PI0 ------> LTDC_G5 | |
242 PI1 ------> LTDC_G6 | |
243 PI2 ------> LTDC_G7 | |
244 PG10 ------> LTDC_B2 | |
245 PG11 ------> LTDC_B3 | |
246 PG12 ------> LTDC_B1 | |
247 PI4 ------> LTDC_B4 | |
248 PI5 ------> LTDC_B5 | |
249 PI6 ------> LTDC_B6 | |
250 PI7 ------> LTDC_B7 | |
251 */ | |
252 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6); | |
253 | |
254 HAL_GPIO_DeInit(GPIOI, GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_0|GPIO_PIN_1 | |
255 |GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6 | |
256 |GPIO_PIN_7); | |
257 | |
258 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_10); | |
259 | |
260 HAL_GPIO_DeInit(GPIOH, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_8|GPIO_PIN_9 | |
261 |GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13 | |
262 |GPIO_PIN_14|GPIO_PIN_15); | |
263 | |
264 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_11 | |
265 |GPIO_PIN_12); | |
266 | |
267 /* USER CODE BEGIN LTDC_MspDeInit 1 */ | |
268 __LTDC_RELEASE_RESET(); | |
269 | |
270 /* USER CODE END LTDC_MspDeInit 1 */ | |
271 } | |
272 | |
273 } | |
274 | |
275 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) | |
276 { | |
277 | |
278 GPIO_InitTypeDef GPIO_InitStruct; | |
279 if(hspi->Instance==SPI1) | |
280 { | |
281 /* USER CODE BEGIN SPI1_MspInit 0 */ | |
282 __GPIOA_CLK_ENABLE(); | |
283 __GPIOB_CLK_ENABLE(); | |
284 __DMA2_CLK_ENABLE(); | |
285 | |
286 /* USER CODE END SPI1_MspInit 0 */ | |
287 /* Peripheral clock enable */ | |
288 __SPI1_CLK_ENABLE(); | |
289 | |
290 /**SPI1 GPIO Configuration | |
291 alt: PA4 ------> SPI1_NSS, jetzt soft | |
292 PA5 ------> SPI1_SCK | |
293 alt: PA6 ------> SPI1_MISO | |
294 neu: PB4 ------> SPI1_MISO | |
295 PA7 ------> SPI1_MOSI | |
296 */ | |
297 // GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7; | |
298 GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7; | |
299 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
300 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
124
4b355396557a
Change GPIO speed for SPI communication as recommended by STM32 Errata
Ideenmodellierer
parents:
38
diff
changeset
|
301 GPIO_InitStruct.Speed = GPIO_SPEED_FAST; /* Decision is based on errata which recomments FAST for GPIO at 90Mhz */ |
38 | 302 GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; |
303 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); | |
304 GPIO_InitStruct.Pin = GPIO_PIN_4; | |
305 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); | |
306 | |
307 /* Peripheral DMA init*/ | |
308 | |
309 hdma_spi1_tx.Instance = DMA2_Stream3; | |
310 hdma_spi1_tx.Init.Channel = DMA_CHANNEL_3; | |
311 hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; | |
312 hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE; | |
313 hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE; | |
314 hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; | |
315 hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; | |
316 hdma_spi1_tx.Init.Mode = DMA_NORMAL; | |
317 hdma_spi1_tx.Init.Priority = DMA_PRIORITY_LOW; | |
318 hdma_spi1_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; | |
319 hdma_spi1_tx.Init.MemBurst = DMA_MBURST_INC4; | |
320 hdma_spi1_tx.Init.PeriphBurst = DMA_PBURST_INC4; | |
321 HAL_DMA_Init(&hdma_spi1_tx); | |
322 | |
323 __HAL_LINKDMA(hspi,hdmatx,hdma_spi1_tx); | |
324 | |
325 hdma_spi1_rx.Instance = DMA2_Stream0; | |
326 hdma_spi1_rx.Init.Channel = DMA_CHANNEL_3; | |
327 hdma_spi1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; | |
328 hdma_spi1_rx.Init.PeriphInc = DMA_PINC_DISABLE; | |
329 hdma_spi1_rx.Init.MemInc = DMA_MINC_ENABLE; | |
330 hdma_spi1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; | |
331 hdma_spi1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; | |
332 hdma_spi1_rx.Init.Mode = DMA_NORMAL; | |
333 hdma_spi1_rx.Init.Priority = DMA_PRIORITY_HIGH; | |
334 hdma_spi1_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE; | |
335 hdma_spi1_rx.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL; | |
336 | |
337 hdma_spi1_rx.Init.MemBurst = DMA_MBURST_INC4; | |
338 hdma_spi1_rx.Init.PeriphBurst = DMA_PBURST_INC4; | |
339 HAL_DMA_Init(&hdma_spi1_rx); | |
340 | |
341 __HAL_LINKDMA(hspi, hdmarx, hdma_spi1_rx); | |
342 | |
343 /*##-4- Configure the NVIC for DMA #########################################*/ | |
344 /* NVIC configuration for DMA transfer complete interrupt (SPI1_TX) */ | |
345 HAL_NVIC_SetPriority(DMA2_Stream3_IRQn, 0, 1); | |
346 HAL_NVIC_EnableIRQ(DMA2_Stream3_IRQn); | |
347 | |
348 | |
349 /* NVIC configuration for DMA transfer complete interrupt (SPI1_RX) */ | |
350 HAL_NVIC_SetPriority(DMA2_Stream0_IRQn, 0, 0); | |
351 HAL_NVIC_EnableIRQ(DMA2_Stream0_IRQn); | |
352 | |
353 } | |
354 else if(hspi->Instance==SPI2) | |
355 { | |
356 /* USER CODE BEGIN SPI2_MspInit 0 */ | |
357 __GPIOB_CLK_ENABLE(); | |
358 | |
359 /* USER CODE END SPI2_MspInit 0 */ | |
360 /* Peripheral clock enable */ | |
361 __SPI2_CLK_ENABLE(); | |
362 | |
363 /**SPI2 GPIO Configuration | |
364 PB13 ------> SPI2_SCK | |
365 PB14 ------> SPI2_MISO | |
366 PB15 ------> SPI2_MOSI | |
367 */ | |
368 GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; | |
369 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
370 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
371 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
372 GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; | |
373 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); | |
374 | |
375 /* USER CODE BEGIN SPI2_MspInit 1 */ | |
376 | |
377 /* USER CODE END SPI2_MspInit 1 */ | |
378 } | |
379 else if(hspi->Instance==SPI5) | |
380 { | |
381 /* USER CODE BEGIN SPI5_MspInit 0 */ | |
382 __GPIOF_CLK_ENABLE(); | |
383 | |
384 /* USER CODE END SPI5_MspInit 0 */ | |
385 /* Peripheral clock enable */ | |
386 __SPI5_CLK_ENABLE(); | |
387 | |
388 /**SPI5 GPIO Configuration | |
389 PF7 ------> SPI5_SCK | |
390 PF8 ------> SPI5_MISO | |
391 PF9 ------> SPI5_MOSI | |
392 */ | |
393 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9; | |
394 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
395 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
124
4b355396557a
Change GPIO speed for SPI communication as recommended by STM32 Errata
Ideenmodellierer
parents:
38
diff
changeset
|
396 GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; //GPIO_SPEED_MEDIUM;//GPIO_SPEED_LOW; |
38 | 397 GPIO_InitStruct.Alternate = GPIO_AF5_SPI5; |
398 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |
399 | |
400 /* USER CODE BEGIN SPI5_MspInit 1 */ | |
401 | |
402 /* USER CODE END SPI5_MspInit 1 */ | |
403 } | |
404 | |
405 } | |
406 | |
407 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) | |
408 { | |
409 | |
410 if(hspi->Instance==SPI1) | |
411 { | |
412 /* USER CODE BEGIN SPI1_MspDeInit 0 */ | |
413 __SPI1_FORCE_RESET(); | |
414 __SPI1_RELEASE_RESET(); | |
415 | |
416 /* USER CODE END SPI1_MspDeInit 0 */ | |
417 /* Peripheral clock disable */ | |
418 __SPI1_CLK_DISABLE(); | |
419 | |
420 /**SPI1 GPIO Configuration | |
421 PA4 ------> SPI1_NSS | |
422 PA5 ------> SPI1_SCK | |
423 PA6 ------> SPI1_MISO | |
424 PA7 ------> SPI1_MOSI | |
425 */ | |
426 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); | |
427 | |
428 /* Peripheral DMA DeInit*/ | |
429 HAL_DMA_DeInit(hspi->hdmatx); | |
430 HAL_DMA_DeInit(hspi->hdmarx); | |
431 /* USER CODE BEGIN SPI1_MspDeInit 1 */ | |
432 | |
433 /* USER CODE END SPI1_MspDeInit 1 */ | |
434 } | |
435 else if(hspi->Instance==SPI2) | |
436 { | |
437 /* USER CODE BEGIN SPI2_MspDeInit 0 */ | |
438 | |
439 /* USER CODE END SPI2_MspDeInit 0 */ | |
440 /* Peripheral clock disable */ | |
441 __SPI2_CLK_DISABLE(); | |
442 | |
443 /**SPI2 GPIO Configuration | |
444 PB13 ------> SPI2_SCK | |
445 PB14 ------> SPI2_MISO | |
446 PB15 ------> SPI2_MOSI | |
447 */ | |
448 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15); | |
449 | |
450 /* USER CODE BEGIN SPI2_MspDeInit 1 */ | |
451 | |
452 /* USER CODE END SPI2_MspDeInit 1 */ | |
453 } | |
454 else if(hspi->Instance==SPI5) | |
455 { | |
456 /* USER CODE BEGIN SPI5_MspDeInit 0 */ | |
457 __SPI5_FORCE_RESET(); | |
458 __SPI5_RELEASE_RESET(); | |
459 | |
460 /* USER CODE END SPI5_MspDeInit 0 */ | |
461 /* Peripheral clock disable */ | |
462 __SPI5_CLK_DISABLE(); | |
463 | |
464 /**SPI5 GPIO Configuration | |
465 PF7 ------> SPI5_SCK | |
466 PF8 ------> SPI5_MISO | |
467 PF9 ------> SPI5_MOSI | |
468 */ | |
469 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9); | |
470 | |
471 /* USER CODE BEGIN SPI5_MspDeInit 1 */ | |
472 | |
473 /* USER CODE END SPI5_MspDeInit 1 */ | |
474 } | |
475 | |
476 } | |
477 | |
478 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm) | |
479 { | |
480 GPIO_InitTypeDef GPIO_InitStruct; | |
481 if(htim_pwm->Instance==TIM_BACKLIGHT) | |
482 { | |
483 TIM_BACKLIGHT_GPIO_ENABLE(); | |
484 TIM_BACKLIGHT_CLK_ENABLE(); | |
485 | |
486 GPIO_InitStruct.Pin = TIM_BACKLIGHT_PIN; | |
487 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
488 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
489 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
490 GPIO_InitStruct.Alternate = GPIO_AF2_TIM3; | |
491 HAL_GPIO_Init(TIM_BACKLIGHT_GPIO_PORT, &GPIO_InitStruct); | |
492 } | |
493 | |
494 } | |
495 | |
496 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) | |
497 { | |
498 if(htim_base->Instance==TIMx) | |
499 { | |
500 TIMx_CLK_ENABLE(); | |
501 | |
502 HAL_NVIC_SetPriority(TIMx_IRQn, 2, 1); | |
503 HAL_NVIC_EnableIRQ(TIMx_IRQn); | |
504 } | |
505 if(htim_base->Instance==TIM7) | |
506 { | |
507 __TIM7_CLK_ENABLE(); | |
508 | |
509 HAL_NVIC_SetPriority(TIM7_IRQn, 2, 0); | |
510 HAL_NVIC_EnableIRQ(TIM7_IRQn); | |
511 } | |
512 } | |
513 | |
514 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm) | |
515 { | |
516 | |
517 if(htim_pwm->Instance==TIM2) | |
518 { | |
519 /* USER CODE BEGIN TIM2_MspDeInit 0 */ | |
520 | |
521 /* USER CODE END TIM2_MspDeInit 0 */ | |
522 /* Peripheral clock disable */ | |
523 __TIM2_CLK_DISABLE(); | |
524 | |
525 /**TIM2 GPIO Configuration | |
526 PA15 ------> TIM2_CH1 | |
527 */ | |
528 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15); | |
529 | |
530 /* USER CODE BEGIN TIM2_MspDeInit 1 */ | |
531 | |
532 /* USER CODE END TIM2_MspDeInit 1 */ | |
533 } | |
534 | |
535 } | |
536 | |
537 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) | |
538 { | |
539 | |
540 if(htim_base->Instance==TIM3) | |
541 { | |
542 /* USER CODE BEGIN TIM3_MspDeInit 0 */ | |
543 | |
544 /* USER CODE END TIM3_MspDeInit 0 */ | |
545 /* Peripheral clock disable */ | |
546 __TIM3_CLK_DISABLE(); | |
547 | |
548 /**TIM3 GPIO Configuration | |
549 PC7 ------> TIM3_CH2 | |
550 */ | |
551 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_7); | |
552 | |
553 /* USER CODE BEGIN TIM3_MspDeInit 1 */ | |
554 | |
555 /* USER CODE END TIM3_MspDeInit 1 */ | |
556 } | |
557 | |
558 } | |
559 | |
560 void HAL_UART_MspInit(UART_HandleTypeDef* huart) | |
561 { | |
562 | |
563 GPIO_InitTypeDef GPIO_InitStruct; | |
564 if(huart->Instance==USART1) | |
565 { | |
566 /* USER CODE BEGIN USART1_MspInit 0 */ | |
567 __GPIOA_CLK_ENABLE(); | |
568 | |
569 /* USER CODE END USART1_MspInit 0 */ | |
570 /* Peripheral clock enable */ | |
571 __USART1_CLK_ENABLE(); | |
572 | |
573 /**USART1 GPIO Configuration | |
574 PA9 ------> USART1_TX | |
575 PA10 ------> USART1_RX | |
576 PA11 ------> USART1_CTS | |
577 PA12 ------> USART1_RTS | |
578 */ | |
579 #ifdef USARTx_CTS_PIN | |
580 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12; | |
581 #else | |
582 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; | |
583 #endif | |
584 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
585 GPIO_InitStruct.Pull = GPIO_PULLUP; | |
586 GPIO_InitStruct.Speed = GPIO_SPEED_FAST;//GPIO_SPEED_LOW; | |
587 GPIO_InitStruct.Alternate = GPIO_AF7_USART1; | |
588 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); | |
589 | |
590 HAL_NVIC_SetPriority(USART1_IRQn, 0, 1); | |
591 HAL_NVIC_EnableIRQ(USART1_IRQn); | |
592 } | |
593 #ifdef USART_IR_HUD | |
594 else if(huart->Instance==USART_IR_HUD) /* USART2 */ | |
595 { | |
596 USART_IR_HUD_CLK_ENABLE(); | |
597 USART_IR_HUD_TX_GPIO_CLK_ENABLE(); | |
598 USART_IR_HUD_RX_GPIO_CLK_ENABLE(); | |
599 | |
600 /**USART2 GPIO Configuration | |
601 PD5 ------> USART2_TX | |
602 PD6 ------> USART2_RX | |
603 */ | |
604 | |
605 GPIO_InitStruct.Pin = USART_IR_HUD_TX_PIN; | |
606 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
607 GPIO_InitStruct.Pull = GPIO_PULLUP; | |
608 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
609 GPIO_InitStruct.Alternate = USART_IR_HUD_TX_AF; | |
610 HAL_GPIO_Init(USART_IR_HUD_TX_GPIO_PORT, &GPIO_InitStruct); | |
611 | |
612 GPIO_InitStruct.Pin = USART_IR_HUD_RX_PIN; | |
613 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
614 GPIO_InitStruct.Pull = GPIO_PULLUP; | |
615 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
616 GPIO_InitStruct.Alternate = USART_IR_HUD_RX_AF; | |
617 HAL_GPIO_Init(USART_IR_HUD_RX_GPIO_PORT, &GPIO_InitStruct); | |
618 | |
619 HAL_NVIC_SetPriority(USART_IR_HUD_IRQn, 0, 1); | |
620 HAL_NVIC_EnableIRQ(USART_IR_HUD_IRQn); | |
621 } | |
622 #endif | |
623 else if(huart->Instance==USART3) | |
624 { | |
625 /* USER CODE BEGIN USART3_MspInit 0 */ | |
626 | |
627 /* USER CODE END USART3_MspInit 0 */ | |
628 /* Peripheral clock enable */ | |
629 __USART3_CLK_ENABLE(); | |
630 | |
631 /**USART3 GPIO Configuration | |
632 PC10 ------> USART3_TX | |
633 PC11 ------> USART3_RX | |
634 */ | |
635 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; | |
636 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
637 GPIO_InitStruct.Pull = GPIO_PULLUP; | |
638 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
639 GPIO_InitStruct.Alternate = GPIO_AF7_USART3; | |
640 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); | |
641 | |
642 /* USER CODE BEGIN USART3_MspInit 1 */ | |
643 | |
644 /* USER CODE END USART3_MspInit 1 */ | |
645 } | |
646 | |
647 } | |
648 | |
649 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) | |
650 { | |
651 | |
652 if(huart->Instance==USART1) | |
653 { | |
654 /* USER CODE BEGIN USART1_MspDeInit 0 */ | |
655 | |
656 /* USER CODE END USART1_MspDeInit 0 */ | |
657 /* Peripheral clock disable */ | |
658 HAL_NVIC_DisableIRQ(USART1_IRQn); | |
659 __USART1_CLK_DISABLE(); | |
660 | |
661 /**USART1 GPIO Configuration | |
662 PA9 ------> USART1_TX | |
663 PA10 ------> USART1_RX | |
664 */ | |
665 #ifdef USARTx_CTS_PIN | |
666 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12); | |
667 #else | |
668 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); | |
669 #endif | |
670 | |
671 /* USER CODE BEGIN USART1_MspDeInit 1 */ | |
672 | |
673 /* USER CODE END USART1_MspDeInit 1 */ | |
674 } | |
675 else if(huart->Instance==USART2) | |
676 { | |
677 /* USER CODE BEGIN USART2_MspDeInit 0 */ | |
678 | |
679 /* USER CODE END USART2_MspDeInit 0 */ | |
680 /* Peripheral clock disable */ | |
681 __USART2_CLK_DISABLE(); | |
682 | |
683 /**USART2 GPIO Configuration | |
684 PD5 ------> USART2_TX | |
685 PD6 ------> USART2_RX | |
686 */ | |
687 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5|GPIO_PIN_6); | |
688 | |
689 /* USER CODE BEGIN USART2_MspDeInit 1 */ | |
690 | |
691 /* USER CODE END USART2_MspDeInit 1 */ | |
692 } | |
693 else if(huart->Instance==USART3) | |
694 { | |
695 /* USER CODE BEGIN USART3_MspDeInit 0 */ | |
696 | |
697 /* USER CODE END USART3_MspDeInit 0 */ | |
698 /* Peripheral clock disable */ | |
699 __USART3_CLK_DISABLE(); | |
700 | |
701 /**USART3 GPIO Configuration | |
702 PC10 ------> USART3_TX | |
703 PC11 ------> USART3_RX | |
704 */ | |
705 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11); | |
706 | |
707 /* USER CODE BEGIN USART3_MspDeInit 1 */ | |
708 | |
709 /* USER CODE END USART3_MspDeInit 1 */ | |
710 } | |
711 | |
712 } | |
713 | |
714 static int FMC_Initialized = 0; | |
715 | |
716 static void HAL_FMC_MspInit(void){ | |
717 GPIO_InitTypeDef GPIO_InitStruct; | |
718 if (FMC_Initialized) { | |
719 return; | |
720 } | |
721 FMC_Initialized = 1; | |
722 /* Peripheral clock enable */ | |
723 __GPIOC_CLK_ENABLE(); | |
724 __GPIOD_CLK_ENABLE(); | |
725 __GPIOE_CLK_ENABLE(); | |
726 __GPIOF_CLK_ENABLE(); | |
727 __GPIOG_CLK_ENABLE(); | |
728 __GPIOH_CLK_ENABLE(); | |
729 | |
730 __FMC_CLK_ENABLE(); | |
731 | |
732 /** FMC GPIO Configuration | |
733 PF0 ------> FMC_A0 | |
734 PF1 ------> FMC_A1 | |
735 PF2 ------> FMC_A2 | |
736 PF3 ------> FMC_A3 | |
737 PF4 ------> FMC_A4 | |
738 PF5 ------> FMC_A5 | |
739 PC0 ------> FMC_SDNWE | |
740 PF11 ------> FMC_SDNRAS | |
741 PF12 ------> FMC_A6 | |
742 PF13 ------> FMC_A7 | |
743 PF14 ------> FMC_A8 | |
744 PF15 ------> FMC_A9 | |
745 PG0 ------> FMC_A10 | |
746 PG1 ------> FMC_A11 | |
747 PE7 ------> FMC_D4 | |
748 PE8 ------> FMC_D5 | |
749 PE9 ------> FMC_D6 | |
750 PE10 ------> FMC_D7 | |
751 PE11 ------> FMC_D8 | |
752 PE12 ------> FMC_D9 | |
753 PE13 ------> FMC_D10 | |
754 PE14 ------> FMC_D11 | |
755 PE15 ------> FMC_D12 | |
756 PH6 ------> FMC_SDNE1 neu | |
757 PH7 ------> FMC_SDCKE1 neu | |
758 PD8 ------> FMC_D13 | |
759 PD9 ------> FMC_D14 | |
760 PD10 ------> FMC_D15 | |
761 PD14 ------> FMC_D0 | |
762 PD15 ------> FMC_D1 | |
763 PG2 ------> FMC_A12 | |
764 PG4 ------> FMC_BA0 | |
765 PG5 ------> FMC_BA1 | |
766 PG8 ------> FMC_SDCLK | |
767 PD0 ------> FMC_D2 | |
768 PD1 ------> FMC_D3 | |
769 PG15 ------> FMC_SDNCAS | |
770 PE0 ------> FMC_NBL0 | |
771 PE1 ------> FMC_NBL1 | |
772 */ | |
773 | |
774 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
775 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
776 GPIO_InitStruct.Speed = GPIO_SPEED_FAST; | |
777 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; | |
778 | |
779 | |
780 GPIO_InitStruct.Pin = GPIO_PIN_0; | |
781 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); | |
782 | |
783 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14 | |
784 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1; | |
785 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); | |
786 | |
787 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 | |
788 |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 | |
789 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1; | |
790 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); | |
791 | |
792 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 | |
793 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12 | |
794 |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; | |
795 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |
796 | |
797 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4 | |
798 |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15; | |
799 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); | |
800 | |
801 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; | |
802 HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); | |
803 | |
804 | |
805 } | |
806 | |
807 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){ | |
808 HAL_FMC_MspInit(); | |
809 } | |
810 | |
811 static int FMC_DeInitialized = 0; | |
812 | |
813 static void HAL_FMC_MspDeInit(void){ | |
814 if (FMC_DeInitialized) { | |
815 return; | |
816 } | |
817 FMC_DeInitialized = 1; | |
818 /* Peripheral clock enable */ | |
819 __FMC_CLK_DISABLE(); | |
820 | |
821 /** FMC GPIO Configuration | |
822 PF0 ------> FMC_A0 | |
823 PF1 ------> FMC_A1 | |
824 PF2 ------> FMC_A2 | |
825 PF3 ------> FMC_A3 | |
826 PF4 ------> FMC_A4 | |
827 PF5 ------> FMC_A5 | |
828 PC0 ------> FMC_SDNWE | |
829 PF11 ------> FMC_SDNRAS | |
830 PF12 ------> FMC_A6 | |
831 PF13 ------> FMC_A7 | |
832 PF14 ------> FMC_A8 | |
833 PF15 ------> FMC_A9 | |
834 PG0 ------> FMC_A10 | |
835 PG1 ------> FMC_A11 | |
836 PE7 ------> FMC_D4 | |
837 PE8 ------> FMC_D5 | |
838 PE9 ------> FMC_D6 | |
839 PE10 ------> FMC_D7 | |
840 PE11 ------> FMC_D8 | |
841 PE12 ------> FMC_D9 | |
842 PE13 ------> FMC_D10 | |
843 PE14 ------> FMC_D11 | |
844 PE15 ------> FMC_D12 | |
845 PH6 ------> FMC_SDNE1 | |
846 PH7 ------> FMC_SDCKE1 | |
847 PD8 ------> FMC_D13 | |
848 PD9 ------> FMC_D14 | |
849 PD10 ------> FMC_D15 | |
850 PD14 ------> FMC_D0 | |
851 PD15 ------> FMC_D1 | |
852 PG2 ------> FMC_A12 | |
853 PG4 ------> FMC_BA0 | |
854 PG5 ------> FMC_BA1 | |
855 PG8 ------> FMC_SDCLK | |
856 PD0 ------> FMC_D2 | |
857 PD1 ------> FMC_D3 | |
858 PG15 ------> FMC_SDNCAS | |
859 PE0 ------> FMC_NBL0 | |
860 PE1 ------> FMC_NBL1 | |
861 */ | |
862 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 | |
863 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12 | |
864 |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15); | |
865 | |
866 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0); | |
867 | |
868 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4 | |
869 |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15); | |
870 | |
871 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 | |
872 |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 | |
873 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1); | |
874 | |
875 HAL_GPIO_DeInit(GPIOH, GPIO_PIN_6|GPIO_PIN_7); | |
876 | |
877 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14 | |
878 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1); | |
879 | |
880 } | |
881 | |
882 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){ | |
883 HAL_FMC_MspDeInit(); | |
884 } |