Subversion Repositories EngineBay2

Rev

Rev 3 | Rev 7 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 mjames 1
/**
2
  ******************************************************************************
3
  * File Name          : stm32l1xx_hal_msp.c
4
  * Description        : This file provides code for the MSP Initialization
5
  *                      and de-Initialization codes.
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
/* Includes ------------------------------------------------------------------*/
35
#include "stm32l1xx_hal.h"
36
 
6 mjames 37
extern DMA_HandleTypeDef hdma_adc;
38
 
2 mjames 39
extern void Error_Handler(void);
40
/* USER CODE BEGIN 0 */
41
 
42
/* USER CODE END 0 */
43
 
44
/**
45
  * Initializes the Global MSP.
46
  */
47
void HAL_MspInit(void)
48
{
49
  /* USER CODE BEGIN MspInit 0 */
50
 
51
  /* USER CODE END MspInit 0 */
52
 
53
  __HAL_RCC_COMP_CLK_ENABLE();
54
  __HAL_RCC_SYSCFG_CLK_ENABLE();
55
 
56
  HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
57
 
58
  /* System interrupt init*/
59
  /* MemoryManagement_IRQn interrupt configuration */
60
  HAL_NVIC_SetPriority(MemoryManagement_IRQn, 0, 0);
61
  /* BusFault_IRQn interrupt configuration */
62
  HAL_NVIC_SetPriority(BusFault_IRQn, 0, 0);
63
  /* UsageFault_IRQn interrupt configuration */
64
  HAL_NVIC_SetPriority(UsageFault_IRQn, 0, 0);
65
  /* SVC_IRQn interrupt configuration */
66
  HAL_NVIC_SetPriority(SVC_IRQn, 0, 0);
67
  /* DebugMonitor_IRQn interrupt configuration */
68
  HAL_NVIC_SetPriority(DebugMonitor_IRQn, 0, 0);
69
  /* PendSV_IRQn interrupt configuration */
70
  HAL_NVIC_SetPriority(PendSV_IRQn, 0, 0);
71
  /* SysTick_IRQn interrupt configuration */
72
  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
73
 
74
  /* USER CODE BEGIN MspInit 1 */
75
 
76
  /* USER CODE END MspInit 1 */
77
}
78
 
79
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
80
{
81
 
82
  GPIO_InitTypeDef GPIO_InitStruct;
83
  if(hadc->Instance==ADC1)
84
  {
85
  /* USER CODE BEGIN ADC1_MspInit 0 */
86
 
87
  /* USER CODE END ADC1_MspInit 0 */
88
    /* Peripheral clock enable */
89
    __HAL_RCC_ADC1_CLK_ENABLE();
90
 
91
    /**ADC GPIO Configuration    
6 mjames 92
    PC0     ------> ADC_IN10
93
    PC1     ------> ADC_IN11
94
    PC2     ------> ADC_IN12
95
    PC3     ------> ADC_IN13
2 mjames 96
    */
6 mjames 97
    GPIO_InitStruct.Pin = V_Batt1_Pin|V_Batt2_Pin|V_Oil_Pin|V_MAP_Pin;
2 mjames 98
    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
99
    GPIO_InitStruct.Pull = GPIO_NOPULL;
6 mjames 100
    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
2 mjames 101
 
6 mjames 102
    /* Peripheral DMA init*/
103
 
104
    hdma_adc.Instance = DMA1_Channel1;
105
    hdma_adc.Init.Direction = DMA_PERIPH_TO_MEMORY;
106
    hdma_adc.Init.PeriphInc = DMA_PINC_DISABLE;
107
    hdma_adc.Init.MemInc = DMA_MINC_ENABLE;
108
    hdma_adc.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
109
    hdma_adc.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
110
    hdma_adc.Init.Mode = DMA_NORMAL;
111
    hdma_adc.Init.Priority = DMA_PRIORITY_LOW;
112
    if (HAL_DMA_Init(&hdma_adc) != HAL_OK)
113
    {
114
      Error_Handler();
115
    }
116
 
117
    __HAL_LINKDMA(hadc,DMA_Handle,hdma_adc);
118
 
2 mjames 119
  /* USER CODE BEGIN ADC1_MspInit 1 */
120
 
121
  /* USER CODE END ADC1_MspInit 1 */
122
  }
123
 
124
}
125
 
126
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
127
{
128
 
129
  if(hadc->Instance==ADC1)
130
  {
131
  /* USER CODE BEGIN ADC1_MspDeInit 0 */
132
 
133
  /* USER CODE END ADC1_MspDeInit 0 */
134
    /* Peripheral clock disable */
135
    __HAL_RCC_ADC1_CLK_DISABLE();
136
 
137
    /**ADC GPIO Configuration    
6 mjames 138
    PC0     ------> ADC_IN10
139
    PC1     ------> ADC_IN11
140
    PC2     ------> ADC_IN12
141
    PC3     ------> ADC_IN13
2 mjames 142
    */
6 mjames 143
    HAL_GPIO_DeInit(GPIOC, V_Batt1_Pin|V_Batt2_Pin|V_Oil_Pin|V_MAP_Pin);
2 mjames 144
 
6 mjames 145
    /* Peripheral DMA DeInit*/
146
    HAL_DMA_DeInit(hadc->DMA_Handle);
2 mjames 147
  }
148
  /* USER CODE BEGIN ADC1_MspDeInit 1 */
149
 
150
  /* USER CODE END ADC1_MspDeInit 1 */
151
 
152
}
153
 
154
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
155
{
156
 
157
  GPIO_InitTypeDef GPIO_InitStruct;
158
  if(hspi->Instance==SPI1)
159
  {
160
  /* USER CODE BEGIN SPI1_MspInit 0 */
161
 
162
  /* USER CODE END SPI1_MspInit 0 */
163
    /* Peripheral clock enable */
164
    __HAL_RCC_SPI1_CLK_ENABLE();
165
 
166
    /**SPI1 GPIO Configuration    
167
    PA5     ------> SPI1_SCK
3 mjames 168
    PA6     ------> SPI1_MISO
2 mjames 169
    PA7     ------> SPI1_MOSI
170
    */
3 mjames 171
    GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
2 mjames 172
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
173
    GPIO_InitStruct.Pull = GPIO_NOPULL;
174
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
175
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
176
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
177
 
178
  /* USER CODE BEGIN SPI1_MspInit 1 */
179
 
180
  /* USER CODE END SPI1_MspInit 1 */
181
  }
182
 
183
}
184
 
185
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
186
{
187
 
188
  if(hspi->Instance==SPI1)
189
  {
190
  /* USER CODE BEGIN SPI1_MspDeInit 0 */
191
 
192
  /* USER CODE END SPI1_MspDeInit 0 */
193
    /* Peripheral clock disable */
194
    __HAL_RCC_SPI1_CLK_DISABLE();
195
 
196
    /**SPI1 GPIO Configuration    
197
    PA5     ------> SPI1_SCK
3 mjames 198
    PA6     ------> SPI1_MISO
2 mjames 199
    PA7     ------> SPI1_MOSI
200
    */
3 mjames 201
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
2 mjames 202
 
203
  }
204
  /* USER CODE BEGIN SPI1_MspDeInit 1 */
205
 
206
  /* USER CODE END SPI1_MspDeInit 1 */
207
 
208
}
209
 
210
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef* htim_ic)
211
{
212
 
213
  GPIO_InitTypeDef GPIO_InitStruct;
214
  if(htim_ic->Instance==TIM2)
215
  {
216
  /* USER CODE BEGIN TIM2_MspInit 0 */
217
 
218
  /* USER CODE END TIM2_MspInit 0 */
219
    /* Peripheral clock enable */
220
    __HAL_RCC_TIM2_CLK_ENABLE();
221
 
222
    /**TIM2 GPIO Configuration    
223
    PA15     ------> TIM2_CH1
224
    PB3     ------> TIM2_CH2
225
    */
226
    GPIO_InitStruct.Pin = CB_Pulse_Pin;
227
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
228
    GPIO_InitStruct.Pull = GPIO_NOPULL;
229
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
230
    GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
231
    HAL_GPIO_Init(CB_Pulse_GPIO_Port, &GPIO_InitStruct);
232
 
233
    GPIO_InitStruct.Pin = Timing_Pulse_Pin;
234
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
235
    GPIO_InitStruct.Pull = GPIO_NOPULL;
236
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
237
    GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
238
    HAL_GPIO_Init(Timing_Pulse_GPIO_Port, &GPIO_InitStruct);
239
 
6 mjames 240
    /* Peripheral interrupt init */
241
    HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
242
    HAL_NVIC_EnableIRQ(TIM2_IRQn);
2 mjames 243
  /* USER CODE BEGIN TIM2_MspInit 1 */
244
 
245
  /* USER CODE END TIM2_MspInit 1 */
246
  }
247
 
248
}
249
 
250
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
251
{
252
 
253
  if(htim_base->Instance==TIM6)
254
  {
255
  /* USER CODE BEGIN TIM6_MspInit 0 */
256
 
257
  /* USER CODE END TIM6_MspInit 0 */
258
    /* Peripheral clock enable */
259
    __HAL_RCC_TIM6_CLK_ENABLE();
260
  /* USER CODE BEGIN TIM6_MspInit 1 */
261
 
262
  /* USER CODE END TIM6_MspInit 1 */
263
  }
264
 
265
}
266
 
267
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
268
{
269
 
270
  GPIO_InitTypeDef GPIO_InitStruct;
271
  if(htim->Instance==TIM2)
272
  {
273
  /* USER CODE BEGIN TIM2_MspPostInit 0 */
274
 
275
  /* USER CODE END TIM2_MspPostInit 0 */
276
 
277
    /**TIM2 GPIO Configuration    
278
    PB10     ------> TIM2_CH3
279
    PB11     ------> TIM2_CH4
280
    */
281
    GPIO_InitStruct.Pin = CB_Drive_Pin|INJ_Drive_Pin;
282
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
283
    GPIO_InitStruct.Pull = GPIO_NOPULL;
284
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
285
    GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
286
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
287
 
288
  /* USER CODE BEGIN TIM2_MspPostInit 1 */
289
 
290
  /* USER CODE END TIM2_MspPostInit 1 */
291
  }
292
 
293
}
294
 
295
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef* htim_ic)
296
{
297
 
298
  if(htim_ic->Instance==TIM2)
299
  {
300
  /* USER CODE BEGIN TIM2_MspDeInit 0 */
301
 
302
  /* USER CODE END TIM2_MspDeInit 0 */
303
    /* Peripheral clock disable */
304
    __HAL_RCC_TIM2_CLK_DISABLE();
305
 
306
    /**TIM2 GPIO Configuration    
307
    PB10     ------> TIM2_CH3
308
    PB11     ------> TIM2_CH4
309
    PA15     ------> TIM2_CH1
310
    PB3     ------> TIM2_CH2
311
    */
312
    HAL_GPIO_DeInit(GPIOB, CB_Drive_Pin|INJ_Drive_Pin|Timing_Pulse_Pin);
313
 
314
    HAL_GPIO_DeInit(CB_Pulse_GPIO_Port, CB_Pulse_Pin);
315
 
6 mjames 316
    /* Peripheral interrupt DeInit*/
317
    HAL_NVIC_DisableIRQ(TIM2_IRQn);
318
 
2 mjames 319
  }
320
  /* USER CODE BEGIN TIM2_MspDeInit 1 */
321
 
322
  /* USER CODE END TIM2_MspDeInit 1 */
323
 
324
}
325
 
326
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
327
{
328
 
329
  if(htim_base->Instance==TIM6)
330
  {
331
  /* USER CODE BEGIN TIM6_MspDeInit 0 */
332
 
333
  /* USER CODE END TIM6_MspDeInit 0 */
334
    /* Peripheral clock disable */
335
    __HAL_RCC_TIM6_CLK_DISABLE();
336
  }
337
  /* USER CODE BEGIN TIM6_MspDeInit 1 */
338
 
339
  /* USER CODE END TIM6_MspDeInit 1 */
340
 
341
}
342
 
343
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
344
{
345
 
346
  GPIO_InitTypeDef GPIO_InitStruct;
347
  if(huart->Instance==USART1)
348
  {
349
  /* USER CODE BEGIN USART1_MspInit 0 */
350
 
351
  /* USER CODE END USART1_MspInit 0 */
352
    /* Peripheral clock enable */
353
    __HAL_RCC_USART1_CLK_ENABLE();
354
 
355
    /**USART1 GPIO Configuration    
356
    PA9     ------> USART1_TX
357
    PA10     ------> USART1_RX
358
    */
359
    GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
360
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
361
    GPIO_InitStruct.Pull = GPIO_PULLUP;
362
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
363
    GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
364
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
365
 
6 mjames 366
    /* Peripheral interrupt init */
367
    HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
368
    HAL_NVIC_EnableIRQ(USART1_IRQn);
2 mjames 369
  /* USER CODE BEGIN USART1_MspInit 1 */
370
 
371
  /* USER CODE END USART1_MspInit 1 */
372
  }
6 mjames 373
  else if(huart->Instance==USART2)
374
  {
375
  /* USER CODE BEGIN USART2_MspInit 0 */
2 mjames 376
 
6 mjames 377
  /* USER CODE END USART2_MspInit 0 */
378
    /* Peripheral clock enable */
379
    __HAL_RCC_USART2_CLK_ENABLE();
380
 
381
    /**USART2 GPIO Configuration    
382
    PA2     ------> USART2_TX
383
    PA3     ------> USART2_RX
384
    */
385
    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
386
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
387
    GPIO_InitStruct.Pull = GPIO_PULLUP;
388
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
389
    GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
390
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
391
 
392
    /* Peripheral interrupt init */
393
    HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
394
    HAL_NVIC_EnableIRQ(USART2_IRQn);
395
  /* USER CODE BEGIN USART2_MspInit 1 */
396
 
397
  /* USER CODE END USART2_MspInit 1 */
398
  }
399
 
2 mjames 400
}
401
 
402
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
403
{
404
 
405
  if(huart->Instance==USART1)
406
  {
407
  /* USER CODE BEGIN USART1_MspDeInit 0 */
408
 
409
  /* USER CODE END USART1_MspDeInit 0 */
410
    /* Peripheral clock disable */
411
    __HAL_RCC_USART1_CLK_DISABLE();
412
 
413
    /**USART1 GPIO Configuration    
414
    PA9     ------> USART1_TX
415
    PA10     ------> USART1_RX
416
    */
417
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
418
 
6 mjames 419
    /* Peripheral interrupt DeInit*/
420
    HAL_NVIC_DisableIRQ(USART1_IRQn);
421
 
2 mjames 422
  /* USER CODE BEGIN USART1_MspDeInit 1 */
423
 
424
  /* USER CODE END USART1_MspDeInit 1 */
6 mjames 425
  }
426
  else if(huart->Instance==USART2)
427
  {
428
  /* USER CODE BEGIN USART2_MspDeInit 0 */
2 mjames 429
 
6 mjames 430
  /* USER CODE END USART2_MspDeInit 0 */
431
    /* Peripheral clock disable */
432
    __HAL_RCC_USART2_CLK_DISABLE();
433
 
434
    /**USART2 GPIO Configuration    
435
    PA2     ------> USART2_TX
436
    PA3     ------> USART2_RX
437
    */
438
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
439
 
440
    /* Peripheral interrupt DeInit*/
441
    HAL_NVIC_DisableIRQ(USART2_IRQn);
442
 
443
  /* USER CODE BEGIN USART2_MspDeInit 1 */
444
 
445
  /* USER CODE END USART2_MspDeInit 1 */
446
  }
447
 
2 mjames 448
}
449
 
450
/* USER CODE BEGIN 1 */
451
 
452
/* USER CODE END 1 */
453
 
454
/**
455
  * @}
456
  */
457
 
458
/**
459
  * @}
460
  */
461
 
462
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/