Mercurial > public > ostc4
annotate Discovery/Src/stm32f4xx_hal_msp_hw2.c @ 311:ddbe8bed5096 cleanup-4
bugfix: make stopwatch and divetime run in sync
And this shows the fundamental issue in the difference between dive time and
stopwatch time. The dive time is constructed on the RTE, and rather
independently, the stopwatch time is constructed on CPU1.
This works rather well, but not perfect. This commit fixes things in
a relatively straightforward way. Instead of incrementing the stopwatch
locally on CPU1, simply use the same time data that is coming from the
RTE. Some logic was added to make this stopwatch resettable again.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
author | Jan Mulder <jlmulder@xs4all.nl> |
---|---|
date | Wed, 29 May 2019 14:02:27 +0200 |
parents | b7689d9e888a |
children | 879709909dd6 |
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; | |
125
626191e1fed1
Change GPIO speed for SPI communication as recommended by STM32 Errata
Ideenmodellierer
parents:
124
diff
changeset
|
301 GPIO_InitStruct.Speed = GPIO_SPEED_FAST; /* Decision is based on errata which recommends 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; | |
130
b7689d9e888a
Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents:
125
diff
changeset
|
396 GPIO_InitStruct.Speed = GPIO_SPEED_FAST; /* Decision is based on errata which recommends FAST for GPIO at 90Mhz */ |
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 } | |
130
b7689d9e888a
Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents:
125
diff
changeset
|
505 #ifdef DEMOMODE |
38 | 506 if(htim_base->Instance==TIM7) |
507 { | |
508 __TIM7_CLK_ENABLE(); | |
509 | |
510 HAL_NVIC_SetPriority(TIM7_IRQn, 2, 0); | |
511 HAL_NVIC_EnableIRQ(TIM7_IRQn); | |
512 } | |
130
b7689d9e888a
Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents:
125
diff
changeset
|
513 #endif |
38 | 514 } |
515 | |
516 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm) | |
517 { | |
518 | |
519 if(htim_pwm->Instance==TIM2) | |
520 { | |
521 /* USER CODE BEGIN TIM2_MspDeInit 0 */ | |
522 | |
523 /* USER CODE END TIM2_MspDeInit 0 */ | |
524 /* Peripheral clock disable */ | |
525 __TIM2_CLK_DISABLE(); | |
526 | |
527 /**TIM2 GPIO Configuration | |
528 PA15 ------> TIM2_CH1 | |
529 */ | |
530 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_15); | |
531 | |
532 /* USER CODE BEGIN TIM2_MspDeInit 1 */ | |
533 | |
534 /* USER CODE END TIM2_MspDeInit 1 */ | |
535 } | |
536 | |
537 } | |
538 | |
539 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) | |
540 { | |
541 | |
542 if(htim_base->Instance==TIM3) | |
543 { | |
544 /* USER CODE BEGIN TIM3_MspDeInit 0 */ | |
545 | |
546 /* USER CODE END TIM3_MspDeInit 0 */ | |
547 /* Peripheral clock disable */ | |
548 __TIM3_CLK_DISABLE(); | |
549 | |
550 /**TIM3 GPIO Configuration | |
551 PC7 ------> TIM3_CH2 | |
552 */ | |
553 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_7); | |
554 | |
555 /* USER CODE BEGIN TIM3_MspDeInit 1 */ | |
556 | |
557 /* USER CODE END TIM3_MspDeInit 1 */ | |
558 } | |
559 | |
560 } | |
561 | |
562 void HAL_UART_MspInit(UART_HandleTypeDef* huart) | |
563 { | |
564 | |
565 GPIO_InitTypeDef GPIO_InitStruct; | |
566 if(huart->Instance==USART1) | |
567 { | |
568 /* USER CODE BEGIN USART1_MspInit 0 */ | |
569 __GPIOA_CLK_ENABLE(); | |
570 | |
571 /* USER CODE END USART1_MspInit 0 */ | |
572 /* Peripheral clock enable */ | |
573 __USART1_CLK_ENABLE(); | |
574 | |
575 /**USART1 GPIO Configuration | |
576 PA9 ------> USART1_TX | |
577 PA10 ------> USART1_RX | |
578 PA11 ------> USART1_CTS | |
579 PA12 ------> USART1_RTS | |
580 */ | |
581 #ifdef USARTx_CTS_PIN | |
582 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12; | |
583 #else | |
584 GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; | |
585 #endif | |
586 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
587 GPIO_InitStruct.Pull = GPIO_PULLUP; | |
588 GPIO_InitStruct.Speed = GPIO_SPEED_FAST;//GPIO_SPEED_LOW; | |
589 GPIO_InitStruct.Alternate = GPIO_AF7_USART1; | |
590 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); | |
591 | |
592 HAL_NVIC_SetPriority(USART1_IRQn, 0, 1); | |
593 HAL_NVIC_EnableIRQ(USART1_IRQn); | |
594 } | |
595 #ifdef USART_IR_HUD | |
596 else if(huart->Instance==USART_IR_HUD) /* USART2 */ | |
597 { | |
598 USART_IR_HUD_CLK_ENABLE(); | |
599 USART_IR_HUD_TX_GPIO_CLK_ENABLE(); | |
600 USART_IR_HUD_RX_GPIO_CLK_ENABLE(); | |
601 | |
602 /**USART2 GPIO Configuration | |
603 PD5 ------> USART2_TX | |
604 PD6 ------> USART2_RX | |
605 */ | |
606 | |
607 GPIO_InitStruct.Pin = USART_IR_HUD_TX_PIN; | |
608 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
609 GPIO_InitStruct.Pull = GPIO_PULLUP; | |
610 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
611 GPIO_InitStruct.Alternate = USART_IR_HUD_TX_AF; | |
612 HAL_GPIO_Init(USART_IR_HUD_TX_GPIO_PORT, &GPIO_InitStruct); | |
613 | |
614 GPIO_InitStruct.Pin = USART_IR_HUD_RX_PIN; | |
615 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
616 GPIO_InitStruct.Pull = GPIO_PULLUP; | |
617 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
618 GPIO_InitStruct.Alternate = USART_IR_HUD_RX_AF; | |
619 HAL_GPIO_Init(USART_IR_HUD_RX_GPIO_PORT, &GPIO_InitStruct); | |
620 | |
621 HAL_NVIC_SetPriority(USART_IR_HUD_IRQn, 0, 1); | |
622 HAL_NVIC_EnableIRQ(USART_IR_HUD_IRQn); | |
623 } | |
624 #endif | |
625 else if(huart->Instance==USART3) | |
626 { | |
627 /* USER CODE BEGIN USART3_MspInit 0 */ | |
628 | |
629 /* USER CODE END USART3_MspInit 0 */ | |
630 /* Peripheral clock enable */ | |
631 __USART3_CLK_ENABLE(); | |
632 | |
633 /**USART3 GPIO Configuration | |
634 PC10 ------> USART3_TX | |
635 PC11 ------> USART3_RX | |
636 */ | |
637 GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11; | |
638 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
639 GPIO_InitStruct.Pull = GPIO_PULLUP; | |
640 GPIO_InitStruct.Speed = GPIO_SPEED_LOW; | |
641 GPIO_InitStruct.Alternate = GPIO_AF7_USART3; | |
642 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); | |
643 | |
644 /* USER CODE BEGIN USART3_MspInit 1 */ | |
645 | |
646 /* USER CODE END USART3_MspInit 1 */ | |
647 } | |
648 | |
649 } | |
650 | |
651 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) | |
652 { | |
653 | |
654 if(huart->Instance==USART1) | |
655 { | |
656 /* USER CODE BEGIN USART1_MspDeInit 0 */ | |
657 | |
658 /* USER CODE END USART1_MspDeInit 0 */ | |
659 /* Peripheral clock disable */ | |
660 HAL_NVIC_DisableIRQ(USART1_IRQn); | |
661 __USART1_CLK_DISABLE(); | |
662 | |
663 /**USART1 GPIO Configuration | |
664 PA9 ------> USART1_TX | |
665 PA10 ------> USART1_RX | |
666 */ | |
667 #ifdef USARTx_CTS_PIN | |
668 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12); | |
669 #else | |
670 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); | |
671 #endif | |
672 | |
673 /* USER CODE BEGIN USART1_MspDeInit 1 */ | |
674 | |
675 /* USER CODE END USART1_MspDeInit 1 */ | |
676 } | |
677 else if(huart->Instance==USART2) | |
678 { | |
679 /* USER CODE BEGIN USART2_MspDeInit 0 */ | |
680 | |
681 /* USER CODE END USART2_MspDeInit 0 */ | |
682 /* Peripheral clock disable */ | |
683 __USART2_CLK_DISABLE(); | |
684 | |
685 /**USART2 GPIO Configuration | |
686 PD5 ------> USART2_TX | |
687 PD6 ------> USART2_RX | |
688 */ | |
689 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_5|GPIO_PIN_6); | |
690 | |
691 /* USER CODE BEGIN USART2_MspDeInit 1 */ | |
692 | |
693 /* USER CODE END USART2_MspDeInit 1 */ | |
694 } | |
695 else if(huart->Instance==USART3) | |
696 { | |
697 /* USER CODE BEGIN USART3_MspDeInit 0 */ | |
698 | |
699 /* USER CODE END USART3_MspDeInit 0 */ | |
700 /* Peripheral clock disable */ | |
701 __USART3_CLK_DISABLE(); | |
702 | |
703 /**USART3 GPIO Configuration | |
704 PC10 ------> USART3_TX | |
705 PC11 ------> USART3_RX | |
706 */ | |
707 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11); | |
708 | |
709 /* USER CODE BEGIN USART3_MspDeInit 1 */ | |
710 | |
711 /* USER CODE END USART3_MspDeInit 1 */ | |
712 } | |
713 | |
714 } | |
715 | |
716 static int FMC_Initialized = 0; | |
717 | |
718 static void HAL_FMC_MspInit(void){ | |
719 GPIO_InitTypeDef GPIO_InitStruct; | |
720 if (FMC_Initialized) { | |
721 return; | |
722 } | |
723 FMC_Initialized = 1; | |
724 /* Peripheral clock enable */ | |
725 __GPIOC_CLK_ENABLE(); | |
726 __GPIOD_CLK_ENABLE(); | |
727 __GPIOE_CLK_ENABLE(); | |
728 __GPIOF_CLK_ENABLE(); | |
729 __GPIOG_CLK_ENABLE(); | |
730 __GPIOH_CLK_ENABLE(); | |
731 | |
732 __FMC_CLK_ENABLE(); | |
733 | |
734 /** FMC GPIO Configuration | |
735 PF0 ------> FMC_A0 | |
736 PF1 ------> FMC_A1 | |
737 PF2 ------> FMC_A2 | |
738 PF3 ------> FMC_A3 | |
739 PF4 ------> FMC_A4 | |
740 PF5 ------> FMC_A5 | |
741 PC0 ------> FMC_SDNWE | |
742 PF11 ------> FMC_SDNRAS | |
743 PF12 ------> FMC_A6 | |
744 PF13 ------> FMC_A7 | |
745 PF14 ------> FMC_A8 | |
746 PF15 ------> FMC_A9 | |
747 PG0 ------> FMC_A10 | |
748 PG1 ------> FMC_A11 | |
749 PE7 ------> FMC_D4 | |
750 PE8 ------> FMC_D5 | |
751 PE9 ------> FMC_D6 | |
752 PE10 ------> FMC_D7 | |
753 PE11 ------> FMC_D8 | |
754 PE12 ------> FMC_D9 | |
755 PE13 ------> FMC_D10 | |
756 PE14 ------> FMC_D11 | |
757 PE15 ------> FMC_D12 | |
758 PH6 ------> FMC_SDNE1 neu | |
759 PH7 ------> FMC_SDCKE1 neu | |
760 PD8 ------> FMC_D13 | |
761 PD9 ------> FMC_D14 | |
762 PD10 ------> FMC_D15 | |
763 PD14 ------> FMC_D0 | |
764 PD15 ------> FMC_D1 | |
765 PG2 ------> FMC_A12 | |
766 PG4 ------> FMC_BA0 | |
767 PG5 ------> FMC_BA1 | |
768 PG8 ------> FMC_SDCLK | |
769 PD0 ------> FMC_D2 | |
770 PD1 ------> FMC_D3 | |
771 PG15 ------> FMC_SDNCAS | |
772 PE0 ------> FMC_NBL0 | |
773 PE1 ------> FMC_NBL1 | |
774 */ | |
775 | |
776 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
777 GPIO_InitStruct.Pull = GPIO_NOPULL; | |
778 GPIO_InitStruct.Speed = GPIO_SPEED_FAST; | |
779 GPIO_InitStruct.Alternate = GPIO_AF12_FMC; | |
780 | |
781 | |
782 GPIO_InitStruct.Pin = GPIO_PIN_0; | |
783 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); | |
784 | |
785 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14 | |
786 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1; | |
787 HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); | |
788 | |
789 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 | |
790 |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 | |
791 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1; | |
792 HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); | |
793 | |
794 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 | |
795 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12 | |
796 |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15; | |
797 HAL_GPIO_Init(GPIOF, &GPIO_InitStruct); | |
798 | |
799 GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4 | |
800 |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15; | |
801 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); | |
802 | |
803 GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7; | |
804 HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); | |
805 | |
806 | |
807 } | |
808 | |
809 void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef* hsdram){ | |
810 HAL_FMC_MspInit(); | |
811 } | |
812 | |
813 static int FMC_DeInitialized = 0; | |
814 | |
815 static void HAL_FMC_MspDeInit(void){ | |
816 if (FMC_DeInitialized) { | |
817 return; | |
818 } | |
819 FMC_DeInitialized = 1; | |
820 /* Peripheral clock enable */ | |
821 __FMC_CLK_DISABLE(); | |
822 | |
823 /** FMC GPIO Configuration | |
824 PF0 ------> FMC_A0 | |
825 PF1 ------> FMC_A1 | |
826 PF2 ------> FMC_A2 | |
827 PF3 ------> FMC_A3 | |
828 PF4 ------> FMC_A4 | |
829 PF5 ------> FMC_A5 | |
830 PC0 ------> FMC_SDNWE | |
831 PF11 ------> FMC_SDNRAS | |
832 PF12 ------> FMC_A6 | |
833 PF13 ------> FMC_A7 | |
834 PF14 ------> FMC_A8 | |
835 PF15 ------> FMC_A9 | |
836 PG0 ------> FMC_A10 | |
837 PG1 ------> FMC_A11 | |
838 PE7 ------> FMC_D4 | |
839 PE8 ------> FMC_D5 | |
840 PE9 ------> FMC_D6 | |
841 PE10 ------> FMC_D7 | |
842 PE11 ------> FMC_D8 | |
843 PE12 ------> FMC_D9 | |
844 PE13 ------> FMC_D10 | |
845 PE14 ------> FMC_D11 | |
846 PE15 ------> FMC_D12 | |
847 PH6 ------> FMC_SDNE1 | |
848 PH7 ------> FMC_SDCKE1 | |
849 PD8 ------> FMC_D13 | |
850 PD9 ------> FMC_D14 | |
851 PD10 ------> FMC_D15 | |
852 PD14 ------> FMC_D0 | |
853 PD15 ------> FMC_D1 | |
854 PG2 ------> FMC_A12 | |
855 PG4 ------> FMC_BA0 | |
856 PG5 ------> FMC_BA1 | |
857 PG8 ------> FMC_SDCLK | |
858 PD0 ------> FMC_D2 | |
859 PD1 ------> FMC_D3 | |
860 PG15 ------> FMC_SDNCAS | |
861 PE0 ------> FMC_NBL0 | |
862 PE1 ------> FMC_NBL1 | |
863 */ | |
864 HAL_GPIO_DeInit(GPIOF, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3 | |
865 |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_11|GPIO_PIN_12 | |
866 |GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15); | |
867 | |
868 HAL_GPIO_DeInit(GPIOC, GPIO_PIN_0); | |
869 | |
870 HAL_GPIO_DeInit(GPIOG, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_4 | |
871 |GPIO_PIN_5|GPIO_PIN_8|GPIO_PIN_15); | |
872 | |
873 HAL_GPIO_DeInit(GPIOE, GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10 | |
874 |GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14 | |
875 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1); | |
876 | |
877 HAL_GPIO_DeInit(GPIOH, GPIO_PIN_6|GPIO_PIN_7); | |
878 | |
879 HAL_GPIO_DeInit(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_14 | |
880 |GPIO_PIN_15|GPIO_PIN_0|GPIO_PIN_1); | |
881 | |
882 } | |
883 | |
884 void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef* hsdram){ | |
885 HAL_FMC_MspDeInit(); | |
886 } |