Subversion Repositories EngineBay2

Rev

Rev 29 | 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 */
31 mjames 62
/**
2 mjames 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();
29 mjames 277
    /* TIM3 interrupt Init */
278
    HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
279
    HAL_NVIC_EnableIRQ(TIM3_IRQn);
28 mjames 280
  /* USER CODE BEGIN TIM3_MspInit 1 */
281
 
282
  /* USER CODE END TIM3_MspInit 1 */
283
  }
12 mjames 284
  else if(htim_base->Instance==TIM6)
2 mjames 285
  {
286
  /* USER CODE BEGIN TIM6_MspInit 0 */
287
 
288
  /* USER CODE END TIM6_MspInit 0 */
289
    /* Peripheral clock enable */
290
    __HAL_RCC_TIM6_CLK_ENABLE();
28 mjames 291
    /* TIM6 interrupt Init */
7 mjames 292
    HAL_NVIC_SetPriority(TIM6_IRQn, 0, 0);
293
    HAL_NVIC_EnableIRQ(TIM6_IRQn);
2 mjames 294
  /* USER CODE BEGIN TIM6_MspInit 1 */
295
 
296
  /* USER CODE END TIM6_MspInit 1 */
297
  }
298
 
299
}
300
 
28 mjames 301
/**
302
* @brief TIM_Base MSP De-Initialization
303
* This function freeze the hardware resources used in this example
304
* @param htim_base: TIM_Base handle pointer
305
* @retval None
306
*/
12 mjames 307
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
2 mjames 308
{
12 mjames 309
  if(htim_base->Instance==TIM2)
2 mjames 310
  {
311
  /* USER CODE BEGIN TIM2_MspDeInit 0 */
312
 
313
  /* USER CODE END TIM2_MspDeInit 0 */
314
    /* Peripheral clock disable */
315
    __HAL_RCC_TIM2_CLK_DISABLE();
28 mjames 316
 
317
    /**TIM2 GPIO Configuration
318
    PA15     ------> TIM2_CH1
2 mjames 319
    */
320
    HAL_GPIO_DeInit(CB_Pulse_GPIO_Port, CB_Pulse_Pin);
321
 
28 mjames 322
    /* TIM2 interrupt DeInit */
6 mjames 323
    HAL_NVIC_DisableIRQ(TIM2_IRQn);
2 mjames 324
  /* USER CODE BEGIN TIM2_MspDeInit 1 */
325
 
326
  /* USER CODE END TIM2_MspDeInit 1 */
12 mjames 327
  }
28 mjames 328
  else if(htim_base->Instance==TIM3)
329
  {
330
  /* USER CODE BEGIN TIM3_MspDeInit 0 */
331
 
332
  /* USER CODE END TIM3_MspDeInit 0 */
333
    /* Peripheral clock disable */
334
    __HAL_RCC_TIM3_CLK_DISABLE();
29 mjames 335
 
336
    /* TIM3 interrupt DeInit */
337
    HAL_NVIC_DisableIRQ(TIM3_IRQn);
28 mjames 338
  /* USER CODE BEGIN TIM3_MspDeInit 1 */
339
 
340
  /* USER CODE END TIM3_MspDeInit 1 */
341
  }
12 mjames 342
  else if(htim_base->Instance==TIM6)
2 mjames 343
  {
344
  /* USER CODE BEGIN TIM6_MspDeInit 0 */
345
 
346
  /* USER CODE END TIM6_MspDeInit 0 */
347
    /* Peripheral clock disable */
348
    __HAL_RCC_TIM6_CLK_DISABLE();
7 mjames 349
 
28 mjames 350
    /* TIM6 interrupt DeInit */
7 mjames 351
    HAL_NVIC_DisableIRQ(TIM6_IRQn);
2 mjames 352
  /* USER CODE BEGIN TIM6_MspDeInit 1 */
353
 
354
  /* USER CODE END TIM6_MspDeInit 1 */
12 mjames 355
  }
2 mjames 356
 
357
}
358
 
28 mjames 359
/**
360
* @brief UART MSP Initialization
361
* This function configures the hardware resources used in this example
362
* @param huart: UART handle pointer
363
* @retval None
364
*/
2 mjames 365
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
366
{
28 mjames 367
  GPIO_InitTypeDef GPIO_InitStruct = {0};
2 mjames 368
  if(huart->Instance==USART1)
369
  {
370
  /* USER CODE BEGIN USART1_MspInit 0 */
371
 
372
  /* USER CODE END USART1_MspInit 0 */
373
    /* Peripheral clock enable */
374
    __HAL_RCC_USART1_CLK_ENABLE();
28 mjames 375
 
376
    __HAL_RCC_GPIOA_CLK_ENABLE();
377
    /**USART1 GPIO Configuration
2 mjames 378
    PA9     ------> USART1_TX
28 mjames 379
    PA10     ------> USART1_RX
2 mjames 380
    */
381
    GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
382
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
28 mjames 383
    GPIO_InitStruct.Pull = GPIO_NOPULL;
2 mjames 384
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
385
    GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
386
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
387
 
28 mjames 388
    /* USART1 interrupt Init */
6 mjames 389
    HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
390
    HAL_NVIC_EnableIRQ(USART1_IRQn);
2 mjames 391
  /* USER CODE BEGIN USART1_MspInit 1 */
392
 
393
  /* USER CODE END USART1_MspInit 1 */
394
  }
6 mjames 395
  else if(huart->Instance==USART2)
396
  {
397
  /* USER CODE BEGIN USART2_MspInit 0 */
2 mjames 398
 
6 mjames 399
  /* USER CODE END USART2_MspInit 0 */
400
    /* Peripheral clock enable */
401
    __HAL_RCC_USART2_CLK_ENABLE();
28 mjames 402
 
403
    __HAL_RCC_GPIOA_CLK_ENABLE();
404
    /**USART2 GPIO Configuration
6 mjames 405
    PA2     ------> USART2_TX
28 mjames 406
    PA3     ------> USART2_RX
6 mjames 407
    */
408
    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
409
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
28 mjames 410
    GPIO_InitStruct.Pull = GPIO_NOPULL;
6 mjames 411
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
412
    GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
413
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
414
 
28 mjames 415
    /* USART2 interrupt Init */
6 mjames 416
    HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
417
    HAL_NVIC_EnableIRQ(USART2_IRQn);
418
  /* USER CODE BEGIN USART2_MspInit 1 */
419
 
420
  /* USER CODE END USART2_MspInit 1 */
421
  }
422
 
2 mjames 423
}
424
 
28 mjames 425
/**
426
* @brief UART MSP De-Initialization
427
* This function freeze the hardware resources used in this example
428
* @param huart: UART handle pointer
429
* @retval None
430
*/
2 mjames 431
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
432
{
433
  if(huart->Instance==USART1)
434
  {
435
  /* USER CODE BEGIN USART1_MspDeInit 0 */
436
 
437
  /* USER CODE END USART1_MspDeInit 0 */
438
    /* Peripheral clock disable */
439
    __HAL_RCC_USART1_CLK_DISABLE();
28 mjames 440
 
441
    /**USART1 GPIO Configuration
2 mjames 442
    PA9     ------> USART1_TX
28 mjames 443
    PA10     ------> USART1_RX
2 mjames 444
    */
445
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
446
 
28 mjames 447
    /* USART1 interrupt DeInit */
6 mjames 448
    HAL_NVIC_DisableIRQ(USART1_IRQn);
2 mjames 449
  /* USER CODE BEGIN USART1_MspDeInit 1 */
450
 
451
  /* USER CODE END USART1_MspDeInit 1 */
6 mjames 452
  }
453
  else if(huart->Instance==USART2)
454
  {
455
  /* USER CODE BEGIN USART2_MspDeInit 0 */
2 mjames 456
 
6 mjames 457
  /* USER CODE END USART2_MspDeInit 0 */
458
    /* Peripheral clock disable */
459
    __HAL_RCC_USART2_CLK_DISABLE();
28 mjames 460
 
461
    /**USART2 GPIO Configuration
6 mjames 462
    PA2     ------> USART2_TX
28 mjames 463
    PA3     ------> USART2_RX
6 mjames 464
    */
465
    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_3);
466
 
28 mjames 467
    /* USART2 interrupt DeInit */
6 mjames 468
    HAL_NVIC_DisableIRQ(USART2_IRQn);
469
  /* USER CODE BEGIN USART2_MspDeInit 1 */
470
 
471
  /* USER CODE END USART2_MspDeInit 1 */
472
  }
473
 
2 mjames 474
}
475
 
476
/* USER CODE BEGIN 1 */
477
 
478
/* USER CODE END 1 */
479
 
480
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/