Subversion Repositories EngineBay2

Rev

Rev 12 | Rev 18 | 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;
13 mjames 110
    hdma_adc.Init.Mode = DMA_CIRCULAR;
6 mjames 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    
13 mjames 223
    PA15     ------> TIM2_CH1
2 mjames 224
    */
225
    GPIO_InitStruct.Pin = CB_Pulse_Pin;
226
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
227
    GPIO_InitStruct.Pull = GPIO_NOPULL;
228
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
229
    GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
230
    HAL_GPIO_Init(CB_Pulse_GPIO_Port, &GPIO_InitStruct);
231
 
6 mjames 232
    /* Peripheral interrupt init */
233
    HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0);
234
    HAL_NVIC_EnableIRQ(TIM2_IRQn);
2 mjames 235
  /* USER CODE BEGIN TIM2_MspInit 1 */
236
 
237
  /* USER CODE END TIM2_MspInit 1 */
238
  }
12 mjames 239
  else if(htim_base->Instance==TIM6)
2 mjames 240
  {
241
  /* USER CODE BEGIN TIM6_MspInit 0 */
242
 
243
  /* USER CODE END TIM6_MspInit 0 */
244
    /* Peripheral clock enable */
245
    __HAL_RCC_TIM6_CLK_ENABLE();
7 mjames 246
    /* Peripheral interrupt init */
247
    HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0);
248
    HAL_NVIC_EnableIRQ(TIM6_IRQn);
2 mjames 249
  /* USER CODE BEGIN TIM6_MspInit 1 */
250
 
251
  /* USER CODE END TIM6_MspInit 1 */
252
  }
253
 
254
}
255
 
12 mjames 256
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
2 mjames 257
{
258
 
12 mjames 259
  if(htim_base->Instance==TIM2)
2 mjames 260
  {
261
  /* USER CODE BEGIN TIM2_MspDeInit 0 */
262
 
263
  /* USER CODE END TIM2_MspDeInit 0 */
264
    /* Peripheral clock disable */
265
    __HAL_RCC_TIM2_CLK_DISABLE();
266
 
267
    /**TIM2 GPIO Configuration    
13 mjames 268
    PA15     ------> TIM2_CH1
2 mjames 269
    */
270
    HAL_GPIO_DeInit(CB_Pulse_GPIO_Port, CB_Pulse_Pin);
271
 
6 mjames 272
    /* Peripheral interrupt DeInit*/
273
    HAL_NVIC_DisableIRQ(TIM2_IRQn);
274
 
2 mjames 275
  /* USER CODE BEGIN TIM2_MspDeInit 1 */
276
 
277
  /* USER CODE END TIM2_MspDeInit 1 */
12 mjames 278
  }
279
  else if(htim_base->Instance==TIM6)
2 mjames 280
  {
281
  /* USER CODE BEGIN TIM6_MspDeInit 0 */
282
 
283
  /* USER CODE END TIM6_MspDeInit 0 */
284
    /* Peripheral clock disable */
285
    __HAL_RCC_TIM6_CLK_DISABLE();
7 mjames 286
 
287
    /* Peripheral interrupt DeInit*/
288
    HAL_NVIC_DisableIRQ(TIM6_IRQn);
289
 
2 mjames 290
  /* USER CODE BEGIN TIM6_MspDeInit 1 */
291
 
292
  /* USER CODE END TIM6_MspDeInit 1 */
12 mjames 293
  }
2 mjames 294
 
295
}
296
 
297
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
298
{
299
 
300
  GPIO_InitTypeDef GPIO_InitStruct;
301
  if(huart->Instance==USART1)
302
  {
303
  /* USER CODE BEGIN USART1_MspInit 0 */
304
 
305
  /* USER CODE END USART1_MspInit 0 */
306
    /* Peripheral clock enable */
307
    __HAL_RCC_USART1_CLK_ENABLE();
308
 
309
    /**USART1 GPIO Configuration    
310
    PA9     ------> USART1_TX
311
    PA10     ------> USART1_RX
312
    */
313
    GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
314
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
315
    GPIO_InitStruct.Pull = GPIO_PULLUP;
316
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
317
    GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
318
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
319
 
6 mjames 320
    /* Peripheral interrupt init */
321
    HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
322
    HAL_NVIC_EnableIRQ(USART1_IRQn);
2 mjames 323
  /* USER CODE BEGIN USART1_MspInit 1 */
324
 
325
  /* USER CODE END USART1_MspInit 1 */
326
  }
6 mjames 327
  else if(huart->Instance==USART2)
328
  {
329
  /* USER CODE BEGIN USART2_MspInit 0 */
2 mjames 330
 
6 mjames 331
  /* USER CODE END USART2_MspInit 0 */
332
    /* Peripheral clock enable */
333
    __HAL_RCC_USART2_CLK_ENABLE();
334
 
335
    /**USART2 GPIO Configuration    
336
    PA2     ------> USART2_TX
337
    PA3     ------> USART2_RX
338
    */
339
    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
340
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
341
    GPIO_InitStruct.Pull = GPIO_PULLUP;
342
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
343
    GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
344
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
345
 
346
    /* Peripheral interrupt init */
347
    HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
348
    HAL_NVIC_EnableIRQ(USART2_IRQn);
349
  /* USER CODE BEGIN USART2_MspInit 1 */
350
 
351
  /* USER CODE END USART2_MspInit 1 */
352
  }
353
 
2 mjames 354
}
355
 
356
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
357
{
358
 
359
  if(huart->Instance==USART1)
360
  {
361
  /* USER CODE BEGIN USART1_MspDeInit 0 */
362
 
363
  /* USER CODE END USART1_MspDeInit 0 */
364
    /* Peripheral clock disable */
365
    __HAL_RCC_USART1_CLK_DISABLE();
366
 
367
    /**USART1 GPIO Configuration    
368
    PA9     ------> USART1_TX
369
    PA10     ------> USART1_RX
370
    */
371
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
372
 
6 mjames 373
    /* Peripheral interrupt DeInit*/
374
    HAL_NVIC_DisableIRQ(USART1_IRQn);
375
 
2 mjames 376
  /* USER CODE BEGIN USART1_MspDeInit 1 */
377
 
378
  /* USER CODE END USART1_MspDeInit 1 */
6 mjames 379
  }
380
  else if(huart->Instance==USART2)
381
  {
382
  /* USER CODE BEGIN USART2_MspDeInit 0 */
2 mjames 383
 
6 mjames 384
  /* USER CODE END USART2_MspDeInit 0 */
385
    /* Peripheral clock disable */
386
    __HAL_RCC_USART2_CLK_DISABLE();
387
 
388
    /**USART2 GPIO Configuration    
389
    PA2     ------> USART2_TX
390
    PA3     ------> USART2_RX
391
    */
392
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
393
 
394
    /* Peripheral interrupt DeInit*/
395
    HAL_NVIC_DisableIRQ(USART2_IRQn);
396
 
397
  /* USER CODE BEGIN USART2_MspDeInit 1 */
398
 
399
  /* USER CODE END USART2_MspDeInit 1 */
400
  }
401
 
2 mjames 402
}
403
 
404
/* USER CODE BEGIN 1 */
405
 
406
/* USER CODE END 1 */
407
 
408
/**
409
  * @}
410
  */
411
 
412
/**
413
  * @}
414
  */
415
 
416
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/