Subversion Repositories EngineBay2

Rev

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

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