Subversion Repositories EngineBay2

Rev

Rev 7 | Rev 13 | 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
 
12 mjames 210
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
2 mjames 211
{
212
 
213
  GPIO_InitTypeDef GPIO_InitStruct;
12 mjames 214
  if(htim_base->Instance==TIM2)
2 mjames 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
  }
12 mjames 247
  else if(htim_base->Instance==TIM6)
2 mjames 248
  {
249
  /* USER CODE BEGIN TIM6_MspInit 0 */
250
 
251
  /* USER CODE END TIM6_MspInit 0 */
252
    /* Peripheral clock enable */
253
    __HAL_RCC_TIM6_CLK_ENABLE();
7 mjames 254
    /* Peripheral interrupt init */
255
    HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0);
256
    HAL_NVIC_EnableIRQ(TIM6_IRQn);
2 mjames 257
  /* USER CODE BEGIN TIM6_MspInit 1 */
258
 
259
  /* USER CODE END TIM6_MspInit 1 */
260
  }
261
 
262
}
263
 
264
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
265
{
266
 
267
  GPIO_InitTypeDef GPIO_InitStruct;
268
  if(htim->Instance==TIM2)
269
  {
270
  /* USER CODE BEGIN TIM2_MspPostInit 0 */
271
 
272
  /* USER CODE END TIM2_MspPostInit 0 */
273
 
274
    /**TIM2 GPIO Configuration    
275
    PB10     ------> TIM2_CH3
276
    PB11     ------> TIM2_CH4
277
    */
278
    GPIO_InitStruct.Pin = CB_Drive_Pin|INJ_Drive_Pin;
279
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
280
    GPIO_InitStruct.Pull = GPIO_NOPULL;
281
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
282
    GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
283
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
284
 
285
  /* USER CODE BEGIN TIM2_MspPostInit 1 */
286
 
287
  /* USER CODE END TIM2_MspPostInit 1 */
288
  }
289
 
290
}
291
 
12 mjames 292
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
2 mjames 293
{
294
 
12 mjames 295
  if(htim_base->Instance==TIM2)
2 mjames 296
  {
297
  /* USER CODE BEGIN TIM2_MspDeInit 0 */
298
 
299
  /* USER CODE END TIM2_MspDeInit 0 */
300
    /* Peripheral clock disable */
301
    __HAL_RCC_TIM2_CLK_DISABLE();
302
 
303
    /**TIM2 GPIO Configuration    
304
    PB10     ------> TIM2_CH3
305
    PB11     ------> TIM2_CH4
306
    PA15     ------> TIM2_CH1
307
    PB3     ------> TIM2_CH2
308
    */
309
    HAL_GPIO_DeInit(GPIOB, CB_Drive_Pin|INJ_Drive_Pin|Timing_Pulse_Pin);
310
 
311
    HAL_GPIO_DeInit(CB_Pulse_GPIO_Port, CB_Pulse_Pin);
312
 
6 mjames 313
    /* Peripheral interrupt DeInit*/
314
    HAL_NVIC_DisableIRQ(TIM2_IRQn);
315
 
2 mjames 316
  /* USER CODE BEGIN TIM2_MspDeInit 1 */
317
 
318
  /* USER CODE END TIM2_MspDeInit 1 */
12 mjames 319
  }
320
  else if(htim_base->Instance==TIM6)
2 mjames 321
  {
322
  /* USER CODE BEGIN TIM6_MspDeInit 0 */
323
 
324
  /* USER CODE END TIM6_MspDeInit 0 */
325
    /* Peripheral clock disable */
326
    __HAL_RCC_TIM6_CLK_DISABLE();
7 mjames 327
 
328
    /* Peripheral interrupt DeInit*/
329
    HAL_NVIC_DisableIRQ(TIM6_IRQn);
330
 
2 mjames 331
  /* USER CODE BEGIN TIM6_MspDeInit 1 */
332
 
333
  /* USER CODE END TIM6_MspDeInit 1 */
12 mjames 334
  }
2 mjames 335
 
336
}
337
 
338
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
339
{
340
 
341
  GPIO_InitTypeDef GPIO_InitStruct;
342
  if(huart->Instance==USART1)
343
  {
344
  /* USER CODE BEGIN USART1_MspInit 0 */
345
 
346
  /* USER CODE END USART1_MspInit 0 */
347
    /* Peripheral clock enable */
348
    __HAL_RCC_USART1_CLK_ENABLE();
349
 
350
    /**USART1 GPIO Configuration    
351
    PA9     ------> USART1_TX
352
    PA10     ------> USART1_RX
353
    */
354
    GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
355
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
356
    GPIO_InitStruct.Pull = GPIO_PULLUP;
357
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
358
    GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
359
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
360
 
6 mjames 361
    /* Peripheral interrupt init */
362
    HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
363
    HAL_NVIC_EnableIRQ(USART1_IRQn);
2 mjames 364
  /* USER CODE BEGIN USART1_MspInit 1 */
365
 
366
  /* USER CODE END USART1_MspInit 1 */
367
  }
6 mjames 368
  else if(huart->Instance==USART2)
369
  {
370
  /* USER CODE BEGIN USART2_MspInit 0 */
2 mjames 371
 
6 mjames 372
  /* USER CODE END USART2_MspInit 0 */
373
    /* Peripheral clock enable */
374
    __HAL_RCC_USART2_CLK_ENABLE();
375
 
376
    /**USART2 GPIO Configuration    
377
    PA2     ------> USART2_TX
378
    PA3     ------> USART2_RX
379
    */
380
    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
381
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
382
    GPIO_InitStruct.Pull = GPIO_PULLUP;
383
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
384
    GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
385
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
386
 
387
    /* Peripheral interrupt init */
388
    HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
389
    HAL_NVIC_EnableIRQ(USART2_IRQn);
390
  /* USER CODE BEGIN USART2_MspInit 1 */
391
 
392
  /* USER CODE END USART2_MspInit 1 */
393
  }
394
 
2 mjames 395
}
396
 
397
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
398
{
399
 
400
  if(huart->Instance==USART1)
401
  {
402
  /* USER CODE BEGIN USART1_MspDeInit 0 */
403
 
404
  /* USER CODE END USART1_MspDeInit 0 */
405
    /* Peripheral clock disable */
406
    __HAL_RCC_USART1_CLK_DISABLE();
407
 
408
    /**USART1 GPIO Configuration    
409
    PA9     ------> USART1_TX
410
    PA10     ------> USART1_RX
411
    */
412
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
413
 
6 mjames 414
    /* Peripheral interrupt DeInit*/
415
    HAL_NVIC_DisableIRQ(USART1_IRQn);
416
 
2 mjames 417
  /* USER CODE BEGIN USART1_MspDeInit 1 */
418
 
419
  /* USER CODE END USART1_MspDeInit 1 */
6 mjames 420
  }
421
  else if(huart->Instance==USART2)
422
  {
423
  /* USER CODE BEGIN USART2_MspDeInit 0 */
2 mjames 424
 
6 mjames 425
  /* USER CODE END USART2_MspDeInit 0 */
426
    /* Peripheral clock disable */
427
    __HAL_RCC_USART2_CLK_DISABLE();
428
 
429
    /**USART2 GPIO Configuration    
430
    PA2     ------> USART2_TX
431
    PA3     ------> USART2_RX
432
    */
433
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
434
 
435
    /* Peripheral interrupt DeInit*/
436
    HAL_NVIC_DisableIRQ(USART2_IRQn);
437
 
438
  /* USER CODE BEGIN USART2_MspDeInit 1 */
439
 
440
  /* USER CODE END USART2_MspDeInit 1 */
441
  }
442
 
2 mjames 443
}
444
 
445
/* USER CODE BEGIN 1 */
446
 
447
/* USER CODE END 1 */
448
 
449
/**
450
  * @}
451
  */
452
 
453
/**
454
  * @}
455
  */
456
 
457
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/