Subversion Repositories EngineBay2

Rev

Rev 30 | Rev 32 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 30 Rev 31
Line 101... Line 101...
101
uint16_t Starter_Debounce = 0;
101
uint16_t Starter_Debounce = 0;
102
 
102
 
103
/* USER CODE END PV */
103
/* USER CODE END PV */
104
 
104
 
105
/* Private function prototypes -----------------------------------------------*/
105
/* Private function prototypes -----------------------------------------------*/
106
void
-
 
107
SystemClock_Config (void);
106
void SystemClock_Config(void);
108
static void
-
 
109
MX_GPIO_Init (void);
107
static void MX_GPIO_Init(void);
110
static void
-
 
111
MX_DMA_Init (void);
108
static void MX_DMA_Init(void);
112
static void
-
 
113
MX_ADC_Init (void);
109
static void MX_ADC_Init(void);
114
static void
-
 
115
MX_SPI1_Init (void);
110
static void MX_SPI1_Init(void);
116
static void
-
 
117
MX_TIM2_Init (void);
111
static void MX_TIM2_Init(void);
118
static void
-
 
119
MX_TIM6_Init (void);
112
static void MX_TIM6_Init(void);
120
static void
-
 
121
MX_USART1_UART_Init (void);
113
static void MX_USART1_UART_Init(void);
122
static void
-
 
123
MX_USART2_UART_Init (void);
114
static void MX_USART2_UART_Init(void);
124
static void
-
 
125
MX_TIM3_Init (void);
115
static void MX_TIM3_Init(void);
126
/* USER CODE BEGIN PFP */
116
/* USER CODE BEGIN PFP */
127
/* Private function prototypes -----------------------------------------------*/
117
/* Private function prototypes -----------------------------------------------*/
128
 
118
 
129
/* USER CODE END PFP */
119
/* USER CODE END PFP */
130
 
120
 
Line 240... Line 230...
240
 
230
 
241
FunctionalState CHT_Enable = ENABLE;
231
FunctionalState CHT_Enable = ENABLE;
242
 
232
 
243
#define CORR 3
233
#define CORR 3
244
 
234
 
245
uint8_t CHT_Timer[2] =
-
 
246
  { 0, 0 }; // two temperature readings : from two sensors
-
 
247
 
235
 
248
uint16_t CHT_Observations[2] =
236
uint16_t CHT_Observations[2] =
249
  { 0, 0 };
237
  { 0, 0 };
250
 
238
 
251
// look for the trigger pin being high then low - the points
239
// look for the trigger pin being high then low - the points
252
// are opening, and skip the reading
240
// are opening, and skip the reading
253
 
241
 
254
void
242
void
255
ProcessCHT (int instance)
243
ProcessCHT (int instance)
256
{
244
{
257
  uint8_t buffer[2];
-
 
258
  if (instance > 2)
-
 
259
    return;
-
 
260
  CHT_Timer[instance]++;
-
 
261
 
-
 
262
  static uint8_t prevCB;
-
 
263
 
-
 
264
  uint8_t readCB = HAL_GPIO_ReadPin (CB_Pulse_GPIO_Port, CB_Pulse_Pin);
-
 
265
 
-
 
266
  if (!(prevCB == GPIO_PIN_SET && readCB == GPIO_PIN_RESET))
-
 
267
    {
-
 
268
 
-
 
269
      if ((CHT_Enable == ENABLE) && (CHT_Timer[instance] >= 4)) // every 300 milliseconds
-
 
270
        {
-
 
271
 
-
 
272
          CHT_Timer[instance] = 0;
-
 
273
 
-
 
274
          uint16_t Pin = (instance == 0) ? SPI_NS_Temp_Pin : SPI_NS_Temp2_Pin;
-
 
275
 
-
 
276
          HAL_GPIO_WritePin (SPI_NS_Temp_GPIO_Port, Pin, GPIO_PIN_RESET);
-
 
277
 
-
 
278
          HAL_SPI_Receive (&hspi1, buffer, 2, 2);
-
 
279
 
-
 
280
          HAL_GPIO_WritePin (SPI_NS_Temp_GPIO_Port, Pin, GPIO_PIN_SET);
-
 
281
 
-
 
282
          uint16_t obs = (buffer[0] << 8) | buffer[1];
-
 
283
 
-
 
284
          // good observation if the status bit is clear, and the reading is less than 1023
-
 
285
 
-
 
286
          uint16_t temp_c = obs >> 5;
-
 
287
 
-
 
288
          uint8_t good = ((obs & 7) == 0) && (temp_c > 0) && (temp_c < 250);
-
 
289
 
-
 
290
          if (good)
-
 
291
            {
-
 
292
              CHT_Observations[instance] = temp_c;
-
 
293
 
-
 
294
            }
-
 
295
 
-
 
296
        }
-
 
297
    }
-
 
298
 
-
 
299
  prevCB = readCB;
-
 
300
  plx_sendword (PLX_X_CHT);
245
  plx_sendword (PLX_X_CHT);
301
  PutCharSerial (&uc1, instance);
246
  PutCharSerial (&uc1, instance);
302
  plx_sendword (CHT_Observations[instance]);
247
  plx_sendword (CHT_Observations[instance]);
303
 
248
 
304
}
249
}
Line 463... Line 408...
463
}
408
}
464
 
409
 
465
/* USER CODE END 0 */
410
/* USER CODE END 0 */
466
 
411
 
467
/**
412
/**
468
 * @brief  The application entry point.
413
  * @brief  The application entry point.
469
 * @retval int
414
  * @retval int
470
 */
415
  */
471
int
-
 
472
main (void)
416
int main(void)
473
{
417
{
474
  /* USER CODE BEGIN 1 */
418
  /* USER CODE BEGIN 1 */
475
 
419
 
476
  /* USER CODE END 1 */
420
  /* USER CODE END 1 */
477
 
421
 
478
  /* MCU Configuration--------------------------------------------------------*/
422
  /* MCU Configuration--------------------------------------------------------*/
479
 
423
 
480
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
424
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
481
  HAL_Init ();
425
  HAL_Init();
482
 
426
 
483
  /* USER CODE BEGIN Init */
427
  /* USER CODE BEGIN Init */
484
 
428
 
485
  /* USER CODE END Init */
429
  /* USER CODE END Init */
486
 
430
 
487
  /* Configure the system clock */
431
  /* Configure the system clock */
488
  SystemClock_Config ();
432
  SystemClock_Config();
489
 
433
 
490
  /* USER CODE BEGIN SysInit */
434
  /* USER CODE BEGIN SysInit */
491
 
435
 
492
  /* USER CODE END SysInit */
436
  /* USER CODE END SysInit */
493
 
437
 
494
  /* Initialize all configured peripherals */
438
  /* Initialize all configured peripherals */
495
  MX_GPIO_Init ();
439
  MX_GPIO_Init();
496
  MX_DMA_Init ();
440
  MX_DMA_Init();
497
  MX_ADC_Init ();
441
  MX_ADC_Init();
498
  MX_SPI1_Init ();
442
  MX_SPI1_Init();
499
  MX_TIM2_Init ();
443
  MX_TIM2_Init();
500
  MX_TIM6_Init ();
444
  MX_TIM6_Init();
501
  MX_USART1_UART_Init ();
445
  MX_USART1_UART_Init();
502
  MX_USART2_UART_Init ();
446
  MX_USART2_UART_Init();
503
  MX_TIM3_Init ();
447
  MX_TIM3_Init();
504
  /* USER CODE BEGIN 2 */
448
  /* USER CODE BEGIN 2 */
505
  HAL_MspInit ();
449
  HAL_MspInit ();
506
 
450
 
507
// Not using HAL USART code
451
// Not using HAL USART code
508
  __HAL_RCC_USART1_CLK_ENABLE()
452
  __HAL_RCC_USART1_CLK_ENABLE()
Line 532... Line 476...
532
// Start the counter
476
// Start the counter
533
  HAL_TIM_Base_Start (&htim2);
477
  HAL_TIM_Base_Start (&htim2);
534
// Start the input capture and the interrupt
478
// Start the input capture and the interrupt
535
  HAL_TIM_IC_Start_IT (&htim2, TIM_CHANNEL_1);
479
  HAL_TIM_IC_Start_IT (&htim2, TIM_CHANNEL_1);
536
 
480
 
537
  init_ADC_filter ();
481
  HAL_TIM_Base_MspInit (&htim3);
538
 
-
 
-
 
482
  __HAL_TIM_ENABLE_IT(&htim3, TIM_IT_UPDATE);
539
  uint32_t Ticks = HAL_GetTick () + 100;
483
  uint32_t Ticks = HAL_GetTick () + 100;
540
  int CalCounter = 0;
484
  int CalCounter = 0;
541
 
485
 
542
  Power_CHT_Timer = HAL_GetTick () + 1000; /* wait 10 seconds before powering up the CHT sensor */
486
  Power_CHT_Timer = HAL_GetTick () + 1000; /* wait 10 seconds before powering up the CHT sensor */
543
 
487
 
Line 545... Line 489...
545
 
489
 
546
  /* Infinite loop */
490
  /* Infinite loop */
547
  /* USER CODE BEGIN WHILE */
491
  /* USER CODE BEGIN WHILE */
548
  while (1)
492
  while (1)
549
    {
493
    {
550
      /* USER CODE END WHILE */
494
    /* USER CODE END WHILE */
551
 
495
 
552
      /* USER CODE BEGIN 3 */
496
    /* USER CODE BEGIN 3 */
553
 
497
 
554
      if (HAL_GetTick () > Ticks)
498
      if (HAL_GetTick () > Ticks)
555
        {
499
        {
556
          Ticks += 100;
500
          Ticks += 100;
557
          filter_ADC_samples ();
501
          filter_ADC_samples ();
Line 652... Line 596...
652
    }
596
    }
653
  /* USER CODE END 3 */
597
  /* USER CODE END 3 */
654
}
598
}
655
 
599
 
656
/**
600
/**
657
 * @brief System Clock Configuration
601
  * @brief System Clock Configuration
658
 * @retval None
602
  * @retval None
659
 */
603
  */
660
void
-
 
661
SystemClock_Config (void)
604
void SystemClock_Config(void)
662
{
605
{
663
  RCC_OscInitTypeDef RCC_OscInitStruct =
606
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
664
    { 0 };
-
 
665
  RCC_ClkInitTypeDef RCC_ClkInitStruct =
607
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
666
    { 0 };
-
 
667
 
608
 
668
  /** Configure the main internal regulator output voltage
609
  /** Configure the main internal regulator output voltage
669
   */
610
  */
670
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
611
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
671
  /** Initializes the RCC Oscillators according to the specified parameters
612
  /** Initializes the RCC Oscillators according to the specified parameters
672
   * in the RCC_OscInitTypeDef structure.
613
  * in the RCC_OscInitTypeDef structure.
673
   */
614
  */
674
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
615
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
675
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
616
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
676
  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
617
  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
677
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
618
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
678
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
619
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
679
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
620
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
680
  RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV3;
621
  RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV3;
681
  if (HAL_RCC_OscConfig (&RCC_OscInitStruct) != HAL_OK)
622
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
682
    {
623
  {
683
      Error_Handler ();
624
    Error_Handler();
684
    }
625
  }
685
  /** Initializes the CPU, AHB and APB buses clocks
626
  /** Initializes the CPU, AHB and APB buses clocks
686
   */
627
  */
687
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
628
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
688
      | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
629
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
689
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
630
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
690
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
631
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
691
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
632
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
692
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
633
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
693
 
634
 
694
  if (HAL_RCC_ClockConfig (&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
635
  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
695
    {
636
  {
696
      Error_Handler ();
637
    Error_Handler();
697
    }
638
  }
698
}
639
}
699
 
640
 
700
/**
641
/**
701
 * @brief ADC Initialization Function
642
  * @brief ADC Initialization Function
702
 * @param None
643
  * @param None
703
 * @retval None
644
  * @retval None
704
 */
645
  */
705
static void
-
 
706
MX_ADC_Init (void)
646
static void MX_ADC_Init(void)
707
{
647
{
708
 
648
 
709
  /* USER CODE BEGIN ADC_Init 0 */
649
  /* USER CODE BEGIN ADC_Init 0 */
710
 
650
 
711
  /* USER CODE END ADC_Init 0 */
651
  /* USER CODE END ADC_Init 0 */
712
 
652
 
713
  ADC_ChannelConfTypeDef sConfig =
653
  ADC_ChannelConfTypeDef sConfig = {0};
714
    { 0 };
-
 
715
 
654
 
716
  /* USER CODE BEGIN ADC_Init 1 */
655
  /* USER CODE BEGIN ADC_Init 1 */
717
 
656
 
718
  /* USER CODE END ADC_Init 1 */
657
  /* USER CODE END ADC_Init 1 */
719
  /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
658
  /** Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
720
   */
659
  */
721
  hadc.Instance = ADC1;
660
  hadc.Instance = ADC1;
722
  hadc.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
661
  hadc.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
723
  hadc.Init.Resolution = ADC_RESOLUTION_12B;
662
  hadc.Init.Resolution = ADC_RESOLUTION_12B;
724
  hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
663
  hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
725
  hadc.Init.ScanConvMode = ADC_SCAN_ENABLE;
664
  hadc.Init.ScanConvMode = ADC_SCAN_ENABLE;
Line 731... Line 670...
731
  hadc.Init.NbrOfConversion = 6;
670
  hadc.Init.NbrOfConversion = 6;
732
  hadc.Init.DiscontinuousConvMode = DISABLE;
671
  hadc.Init.DiscontinuousConvMode = DISABLE;
733
  hadc.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T3_TRGO;
672
  hadc.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T3_TRGO;
734
  hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING;
673
  hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_RISING;
735
  hadc.Init.DMAContinuousRequests = ENABLE;
674
  hadc.Init.DMAContinuousRequests = ENABLE;
736
  if (HAL_ADC_Init (&hadc) != HAL_OK)
675
  if (HAL_ADC_Init(&hadc) != HAL_OK)
737
    {
676
  {
738
      Error_Handler ();
677
    Error_Handler();
739
    }
678
  }
740
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
679
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
741
   */
680
  */
742
  sConfig.Channel = ADC_CHANNEL_10;
681
  sConfig.Channel = ADC_CHANNEL_10;
743
  sConfig.Rank = ADC_REGULAR_RANK_1;
682
  sConfig.Rank = ADC_REGULAR_RANK_1;
744
  sConfig.SamplingTime = ADC_SAMPLETIME_384CYCLES;
683
  sConfig.SamplingTime = ADC_SAMPLETIME_384CYCLES;
745
  if (HAL_ADC_ConfigChannel (&hadc, &sConfig) != HAL_OK)
684
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
746
    {
685
  {
747
      Error_Handler ();
686
    Error_Handler();
748
    }
687
  }
749
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
688
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
750
   */
689
  */
751
  sConfig.Channel = ADC_CHANNEL_11;
690
  sConfig.Channel = ADC_CHANNEL_11;
752
  sConfig.Rank = ADC_REGULAR_RANK_2;
691
  sConfig.Rank = ADC_REGULAR_RANK_2;
753
  if (HAL_ADC_ConfigChannel (&hadc, &sConfig) != HAL_OK)
692
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
754
    {
693
  {
755
      Error_Handler ();
694
    Error_Handler();
756
    }
695
  }
757
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
696
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
758
   */
697
  */
759
  sConfig.Channel = ADC_CHANNEL_12;
698
  sConfig.Channel = ADC_CHANNEL_12;
760
  sConfig.Rank = ADC_REGULAR_RANK_3;
699
  sConfig.Rank = ADC_REGULAR_RANK_3;
761
  if (HAL_ADC_ConfigChannel (&hadc, &sConfig) != HAL_OK)
700
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
762
    {
701
  {
763
      Error_Handler ();
702
    Error_Handler();
764
    }
703
  }
765
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
704
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
766
   */
705
  */
767
  sConfig.Channel = ADC_CHANNEL_13;
706
  sConfig.Channel = ADC_CHANNEL_13;
768
  sConfig.Rank = ADC_REGULAR_RANK_4;
707
  sConfig.Rank = ADC_REGULAR_RANK_4;
769
  if (HAL_ADC_ConfigChannel (&hadc, &sConfig) != HAL_OK)
708
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
770
    {
709
  {
771
      Error_Handler ();
710
    Error_Handler();
772
    }
711
  }
773
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
712
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
774
   */
713
  */
775
  sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;
714
  sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;
776
  sConfig.Rank = ADC_REGULAR_RANK_5;
715
  sConfig.Rank = ADC_REGULAR_RANK_5;
777
  if (HAL_ADC_ConfigChannel (&hadc, &sConfig) != HAL_OK)
716
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
778
    {
717
  {
779
      Error_Handler ();
718
    Error_Handler();
780
    }
719
  }
781
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
720
  /** Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
782
   */
721
  */
783
  sConfig.Channel = ADC_CHANNEL_VREFINT;
722
  sConfig.Channel = ADC_CHANNEL_VREFINT;
784
  sConfig.Rank = ADC_REGULAR_RANK_6;
723
  sConfig.Rank = ADC_REGULAR_RANK_6;
785
  if (HAL_ADC_ConfigChannel (&hadc, &sConfig) != HAL_OK)
724
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
786
    {
725
  {
787
      Error_Handler ();
726
    Error_Handler();
788
    }
727
  }
789
  /* USER CODE BEGIN ADC_Init 2 */
728
  /* USER CODE BEGIN ADC_Init 2 */
790
 
729
 
791
  /* USER CODE END ADC_Init 2 */
730
  /* USER CODE END ADC_Init 2 */
792
 
731
 
793
}
732
}
794
 
733
 
795
/**
734
/**
796
 * @brief SPI1 Initialization Function
735
  * @brief SPI1 Initialization Function
797
 * @param None
736
  * @param None
798
 * @retval None
737
  * @retval None
799
 */
738
  */
800
static void
-
 
801
MX_SPI1_Init (void)
739
static void MX_SPI1_Init(void)
802
{
740
{
803
 
741
 
804
  /* USER CODE BEGIN SPI1_Init 0 */
742
  /* USER CODE BEGIN SPI1_Init 0 */
805
 
743
 
806
  /* USER CODE END SPI1_Init 0 */
744
  /* USER CODE END SPI1_Init 0 */
Line 814... Line 752...
814
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
752
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
815
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
753
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
816
  hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
754
  hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
817
  hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
755
  hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
818
  hspi1.Init.NSS = SPI_NSS_SOFT;
756
  hspi1.Init.NSS = SPI_NSS_SOFT;
819
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64;
757
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
820
  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
758
  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
821
  hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
759
  hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
822
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
760
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
823
  hspi1.Init.CRCPolynomial = 10;
761
  hspi1.Init.CRCPolynomial = 10;
824
  if (HAL_SPI_Init (&hspi1) != HAL_OK)
762
  if (HAL_SPI_Init(&hspi1) != HAL_OK)
825
    {
763
  {
826
      Error_Handler ();
764
    Error_Handler();
827
    }
765
  }
828
  /* USER CODE BEGIN SPI1_Init 2 */
766
  /* USER CODE BEGIN SPI1_Init 2 */
829
 
767
 
830
  /* USER CODE END SPI1_Init 2 */
768
  /* USER CODE END SPI1_Init 2 */
831
 
769
 
832
}
770
}
833
 
771
 
834
/**
772
/**
835
 * @brief TIM2 Initialization Function
773
  * @brief TIM2 Initialization Function
836
 * @param None
774
  * @param None
837
 * @retval None
775
  * @retval None
838
 */
776
  */
839
static void
-
 
840
MX_TIM2_Init (void)
777
static void MX_TIM2_Init(void)
841
{
778
{
842
 
779
 
843
  /* USER CODE BEGIN TIM2_Init 0 */
780
  /* USER CODE BEGIN TIM2_Init 0 */
844
 
781
 
845
  /* USER CODE END TIM2_Init 0 */
782
  /* USER CODE END TIM2_Init 0 */
846
 
783
 
847
  TIM_ClockConfigTypeDef sClockSourceConfig =
784
  TIM_ClockConfigTypeDef sClockSourceConfig = {0};
848
    { 0 };
-
 
849
  TIM_MasterConfigTypeDef sMasterConfig =
785
  TIM_MasterConfigTypeDef sMasterConfig = {0};
850
    { 0 };
-
 
851
  TIM_IC_InitTypeDef sConfigIC =
786
  TIM_IC_InitTypeDef sConfigIC = {0};
852
    { 0 };
-
 
853
 
787
 
854
  /* USER CODE BEGIN TIM2_Init 1 */
788
  /* USER CODE BEGIN TIM2_Init 1 */
855
 
789
 
856
  /* USER CODE END TIM2_Init 1 */
790
  /* USER CODE END TIM2_Init 1 */
857
  htim2.Instance = TIM2;
791
  htim2.Instance = TIM2;
858
  htim2.Init.Prescaler = 320;
792
  htim2.Init.Prescaler = 320;
859
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
793
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
860
  htim2.Init.Period = 65535;
794
  htim2.Init.Period = 65535;
861
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
795
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
862
  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
796
  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
863
  if (HAL_TIM_Base_Init (&htim2) != HAL_OK)
797
  if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
864
    {
798
  {
865
      Error_Handler ();
799
    Error_Handler();
866
    }
800
  }
867
  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
801
  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
868
  if (HAL_TIM_ConfigClockSource (&htim2, &sClockSourceConfig) != HAL_OK)
802
  if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
869
    {
803
  {
870
      Error_Handler ();
804
    Error_Handler();
871
    }
805
  }
872
  if (HAL_TIM_IC_Init (&htim2) != HAL_OK)
806
  if (HAL_TIM_IC_Init(&htim2) != HAL_OK)
873
    {
807
  {
874
      Error_Handler ();
808
    Error_Handler();
875
    }
809
  }
876
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
810
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
877
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
811
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
878
  if (HAL_TIMEx_MasterConfigSynchronization (&htim2, &sMasterConfig) != HAL_OK)
812
  if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
879
    {
813
  {
880
      Error_Handler ();
814
    Error_Handler();
881
    }
815
  }
882
  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;
816
  sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_BOTHEDGE;
883
  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
817
  sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
884
  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
818
  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
885
  sConfigIC.ICFilter = 15;
819
  sConfigIC.ICFilter = 15;
886
  if (HAL_TIM_IC_ConfigChannel (&htim2, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
820
  if (HAL_TIM_IC_ConfigChannel(&htim2, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
887
    {
821
  {
888
      Error_Handler ();
822
    Error_Handler();
889
    }
823
  }
890
  /* USER CODE BEGIN TIM2_Init 2 */
824
  /* USER CODE BEGIN TIM2_Init 2 */
891
 
825
 
892
  /* USER CODE END TIM2_Init 2 */
826
  /* USER CODE END TIM2_Init 2 */
893
 
827
 
894
}
828
}
895
 
829
 
896
/**
830
/**
897
 * @brief TIM3 Initialization Function
831
  * @brief TIM3 Initialization Function
898
 * @param None
832
  * @param None
899
 * @retval None
833
  * @retval None
900
 */
834
  */
901
static void
-
 
902
MX_TIM3_Init (void)
835
static void MX_TIM3_Init(void)
903
{
836
{
904
 
837
 
905
  /* USER CODE BEGIN TIM3_Init 0 */
838
  /* USER CODE BEGIN TIM3_Init 0 */
906
 
839
 
907
  /* USER CODE END TIM3_Init 0 */
840
  /* USER CODE END TIM3_Init 0 */
908
 
841
 
909
  TIM_ClockConfigTypeDef sClockSourceConfig =
842
  TIM_ClockConfigTypeDef sClockSourceConfig = {0};
910
    { 0 };
-
 
911
  TIM_MasterConfigTypeDef sMasterConfig =
843
  TIM_MasterConfigTypeDef sMasterConfig = {0};
912
    { 0 };
-
 
913
  TIM_OC_InitTypeDef sConfigOC =
844
  TIM_OC_InitTypeDef sConfigOC = {0};
914
    { 0 };
-
 
915
 
845
 
916
  /* USER CODE BEGIN TIM3_Init 1 */
846
  /* USER CODE BEGIN TIM3_Init 1 */
917
 
847
 
918
  /* USER CODE END TIM3_Init 1 */
848
  /* USER CODE END TIM3_Init 1 */
919
  htim3.Instance = TIM3;
849
  htim3.Instance = TIM3;
920
  htim3.Init.Prescaler = 320;
850
  htim3.Init.Prescaler = 320;
921
  htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
851
  htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
922
  htim3.Init.Period = 1000;
852
  htim3.Init.Period = 100;
923
  htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
853
  htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
924
  htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
854
  htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
925
  if (HAL_TIM_Base_Init (&htim3) != HAL_OK)
855
  if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
926
    {
856
  {
927
      Error_Handler ();
857
    Error_Handler();
928
    }
858
  }
929
  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
859
  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
930
  if (HAL_TIM_ConfigClockSource (&htim3, &sClockSourceConfig) != HAL_OK)
860
  if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
931
    {
861
  {
932
      Error_Handler ();
862
    Error_Handler();
933
    }
863
  }
934
  if (HAL_TIM_OC_Init (&htim3) != HAL_OK)
864
  if (HAL_TIM_OC_Init(&htim3) != HAL_OK)
935
    {
865
  {
936
      Error_Handler ();
866
    Error_Handler();
937
    }
867
  }
938
  if (HAL_TIM_OnePulse_Init (&htim3, TIM_OPMODE_SINGLE) != HAL_OK)
868
  if (HAL_TIM_OnePulse_Init(&htim3, TIM_OPMODE_SINGLE) != HAL_OK)
939
    {
869
  {
940
      Error_Handler ();
870
    Error_Handler();
941
    }
871
  }
942
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_OC1;
872
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_OC1;
943
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
873
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
944
  if (HAL_TIMEx_MasterConfigSynchronization (&htim3, &sMasterConfig) != HAL_OK)
874
  if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
945
    {
875
  {
946
      Error_Handler ();
876
    Error_Handler();
947
    }
877
  }
948
  sConfigOC.OCMode = TIM_OCMODE_TIMING;
878
  sConfigOC.OCMode = TIM_OCMODE_TIMING;
949
  sConfigOC.Pulse = 1000;
879
  sConfigOC.Pulse = 99;
950
  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
880
  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
951
  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
881
  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
952
  if (HAL_TIM_OC_ConfigChannel (&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
882
  if (HAL_TIM_OC_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
953
    {
883
  {
954
      Error_Handler ();
884
    Error_Handler();
955
    }
885
  }
956
  /* USER CODE BEGIN TIM3_Init 2 */
886
  /* USER CODE BEGIN TIM3_Init 2 */
957
 
887
 
958
  /* USER CODE END TIM3_Init 2 */
888
  /* USER CODE END TIM3_Init 2 */
959
  HAL_TIM_MspPostInit (&htim3);
-
 
960
 
889
 
961
}
890
}
962
 
891
 
963
/**
892
/**
964
 * @brief TIM6 Initialization Function
893
  * @brief TIM6 Initialization Function
965
 * @param None
894
  * @param None
966
 * @retval None
895
  * @retval None
967
 */
896
  */
968
static void
-
 
969
MX_TIM6_Init (void)
897
static void MX_TIM6_Init(void)
970
{
898
{
971
 
899
 
972
  /* USER CODE BEGIN TIM6_Init 0 */
900
  /* USER CODE BEGIN TIM6_Init 0 */
973
 
901
 
974
  /* USER CODE END TIM6_Init 0 */
902
  /* USER CODE END TIM6_Init 0 */
975
 
903
 
976
  TIM_MasterConfigTypeDef sMasterConfig =
904
  TIM_MasterConfigTypeDef sMasterConfig = {0};
977
    { 0 };
-
 
978
 
905
 
979
  /* USER CODE BEGIN TIM6_Init 1 */
906
  /* USER CODE BEGIN TIM6_Init 1 */
980
 
907
 
981
  /* USER CODE END TIM6_Init 1 */
908
  /* USER CODE END TIM6_Init 1 */
982
  htim6.Instance = TIM6;
909
  htim6.Instance = TIM6;
983
  htim6.Init.Prescaler = 320;
910
  htim6.Init.Prescaler = 320;
984
  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
911
  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
985
  htim6.Init.Period = 9999;
912
  htim6.Init.Period = 9999;
986
  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
913
  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
987
  if (HAL_TIM_Base_Init (&htim6) != HAL_OK)
914
  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
988
    {
915
  {
989
      Error_Handler ();
916
    Error_Handler();
990
    }
917
  }
991
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
918
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
992
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
919
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
993
  if (HAL_TIMEx_MasterConfigSynchronization (&htim6, &sMasterConfig) != HAL_OK)
920
  if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
994
    {
921
  {
995
      Error_Handler ();
922
    Error_Handler();
996
    }
923
  }
997
  /* USER CODE BEGIN TIM6_Init 2 */
924
  /* USER CODE BEGIN TIM6_Init 2 */
998
 
925
 
999
  /* USER CODE END TIM6_Init 2 */
926
  /* USER CODE END TIM6_Init 2 */
1000
 
927
 
1001
}
928
}
1002
 
929
 
1003
/**
930
/**
1004
 * @brief USART1 Initialization Function
931
  * @brief USART1 Initialization Function
1005
 * @param None
932
  * @param None
1006
 * @retval None
933
  * @retval None
1007
 */
934
  */
1008
static void
-
 
1009
MX_USART1_UART_Init (void)
935
static void MX_USART1_UART_Init(void)
1010
{
936
{
1011
 
937
 
1012
  /* USER CODE BEGIN USART1_Init 0 */
938
  /* USER CODE BEGIN USART1_Init 0 */
1013
 
939
 
1014
  /* USER CODE END USART1_Init 0 */
940
  /* USER CODE END USART1_Init 0 */
Line 1022... Line 948...
1022
  huart1.Init.StopBits = UART_STOPBITS_1;
948
  huart1.Init.StopBits = UART_STOPBITS_1;
1023
  huart1.Init.Parity = UART_PARITY_NONE;
949
  huart1.Init.Parity = UART_PARITY_NONE;
1024
  huart1.Init.Mode = UART_MODE_TX_RX;
950
  huart1.Init.Mode = UART_MODE_TX_RX;
1025
  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
951
  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
1026
  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
952
  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
1027
  if (HAL_UART_Init (&huart1) != HAL_OK)
953
  if (HAL_UART_Init(&huart1) != HAL_OK)
1028
    {
954
  {
1029
      Error_Handler ();
955
    Error_Handler();
1030
    }
956
  }
1031
  /* USER CODE BEGIN USART1_Init 2 */
957
  /* USER CODE BEGIN USART1_Init 2 */
1032
 
958
 
1033
  /* USER CODE END USART1_Init 2 */
959
  /* USER CODE END USART1_Init 2 */
1034
 
960
 
1035
}
961
}
1036
 
962
 
1037
/**
963
/**
1038
 * @brief USART2 Initialization Function
964
  * @brief USART2 Initialization Function
1039
 * @param None
965
  * @param None
1040
 * @retval None
966
  * @retval None
1041
 */
967
  */
1042
static void
-
 
1043
MX_USART2_UART_Init (void)
968
static void MX_USART2_UART_Init(void)
1044
{
969
{
1045
 
970
 
1046
  /* USER CODE BEGIN USART2_Init 0 */
971
  /* USER CODE BEGIN USART2_Init 0 */
1047
 
972
 
1048
  /* USER CODE END USART2_Init 0 */
973
  /* USER CODE END USART2_Init 0 */
Line 1056... Line 981...
1056
  huart2.Init.StopBits = UART_STOPBITS_1;
981
  huart2.Init.StopBits = UART_STOPBITS_1;
1057
  huart2.Init.Parity = UART_PARITY_NONE;
982
  huart2.Init.Parity = UART_PARITY_NONE;
1058
  huart2.Init.Mode = UART_MODE_TX_RX;
983
  huart2.Init.Mode = UART_MODE_TX_RX;
1059
  huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
984
  huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
1060
  huart2.Init.OverSampling = UART_OVERSAMPLING_16;
985
  huart2.Init.OverSampling = UART_OVERSAMPLING_16;
1061
  if (HAL_UART_Init (&huart2) != HAL_OK)
986
  if (HAL_UART_Init(&huart2) != HAL_OK)
1062
    {
987
  {
1063
      Error_Handler ();
988
    Error_Handler();
1064
    }
989
  }
1065
  /* USER CODE BEGIN USART2_Init 2 */
990
  /* USER CODE BEGIN USART2_Init 2 */
1066
 
991
 
1067
  /* USER CODE END USART2_Init 2 */
992
  /* USER CODE END USART2_Init 2 */
1068
 
993
 
1069
}
994
}
1070
 
995
 
1071
/**
996
/**
1072
 * Enable DMA controller clock
997
  * Enable DMA controller clock
1073
 */
998
  */
1074
static void
-
 
1075
MX_DMA_Init (void)
999
static void MX_DMA_Init(void)
1076
{
1000
{
1077
 
1001
 
1078
  /* DMA controller clock enable */
1002
  /* DMA controller clock enable */
1079
  __HAL_RCC_DMA1_CLK_ENABLE();
1003
  __HAL_RCC_DMA1_CLK_ENABLE();
1080
 
1004
 
1081
  /* DMA interrupt init */
1005
  /* DMA interrupt init */
1082
  /* DMA1_Channel1_IRQn interrupt configuration */
1006
  /* DMA1_Channel1_IRQn interrupt configuration */
1083
  HAL_NVIC_SetPriority (DMA1_Channel1_IRQn, 0, 0);
1007
  HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
1084
  HAL_NVIC_EnableIRQ (DMA1_Channel1_IRQn);
1008
  HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
1085
 
1009
 
1086
}
1010
}
1087
 
1011
 
1088
/**
1012
/**
1089
 * @brief GPIO Initialization Function
1013
  * @brief GPIO Initialization Function
1090
 * @param None
1014
  * @param None
1091
 * @retval None
1015
  * @retval None
1092
 */
1016
  */
1093
static void
-
 
1094
MX_GPIO_Init (void)
1017
static void MX_GPIO_Init(void)
1095
{
1018
{
1096
  GPIO_InitTypeDef GPIO_InitStruct =
1019
  GPIO_InitTypeDef GPIO_InitStruct = {0};
1097
    { 0 };
-
 
1098
 
1020
 
1099
  /* GPIO Ports Clock Enable */
1021
  /* GPIO Ports Clock Enable */
1100
  __HAL_RCC_GPIOC_CLK_ENABLE();
1022
  __HAL_RCC_GPIOC_CLK_ENABLE();
1101
  __HAL_RCC_GPIOH_CLK_ENABLE();
1023
  __HAL_RCC_GPIOH_CLK_ENABLE();
1102
  __HAL_RCC_GPIOA_CLK_ENABLE();
1024
  __HAL_RCC_GPIOA_CLK_ENABLE();
1103
  __HAL_RCC_GPIOB_CLK_ENABLE();
1025
  __HAL_RCC_GPIOB_CLK_ENABLE();
1104
  __HAL_RCC_GPIOD_CLK_ENABLE();
1026
  __HAL_RCC_GPIOD_CLK_ENABLE();
1105
 
1027
 
1106
  /*Configure GPIO pin Output Level */
1028
  /*Configure GPIO pin Output Level */
1107
  HAL_GPIO_WritePin (LED_Blink_GPIO_Port, LED_Blink_Pin, GPIO_PIN_RESET);
1029
  HAL_GPIO_WritePin(LED_Blink_GPIO_Port, LED_Blink_Pin, GPIO_PIN_RESET);
1108
 
1030
 
1109
  /*Configure GPIO pin Output Level */
1031
  /*Configure GPIO pin Output Level */
1110
  HAL_GPIO_WritePin (SPI_NSS1_GPIO_Port, SPI_NSS1_Pin, GPIO_PIN_SET);
1032
  HAL_GPIO_WritePin(SPI_NSS1_GPIO_Port, SPI_NSS1_Pin, GPIO_PIN_SET);
1111
 
1033
 
1112
  /*Configure GPIO pin Output Level */
1034
  /*Configure GPIO pin Output Level */
1113
  HAL_GPIO_WritePin (SPI_CD_GPIO_Port, SPI_CD_Pin, GPIO_PIN_RESET);
1035
  HAL_GPIO_WritePin(SPI_CD_GPIO_Port, SPI_CD_Pin, GPIO_PIN_RESET);
1114
 
1036
 
1115
  /*Configure GPIO pin Output Level */
1037
  /*Configure GPIO pin Output Level */
1116
  HAL_GPIO_WritePin (GPIOB, SPI_RESET_Pin | SPI_NS_Temp2_Pin | ENA_AUX_5V_Pin,
1038
  HAL_GPIO_WritePin(GPIOB, SPI_RESET_Pin|SPI_NS_Temp2_Pin|ENA_AUX_5V_Pin, GPIO_PIN_RESET);
1117
                     GPIO_PIN_RESET);
-
 
1118
 
1039
 
1119
  /*Configure GPIO pin Output Level */
1040
  /*Configure GPIO pin Output Level */
1120
  HAL_GPIO_WritePin (SPI_NS_Temp_GPIO_Port, SPI_NS_Temp_Pin, GPIO_PIN_SET);
1041
  HAL_GPIO_WritePin(SPI_NS_Temp_GPIO_Port, SPI_NS_Temp_Pin, GPIO_PIN_SET);
1121
 
1042
 
1122
  /*Configure GPIO pins : PC13 PC14 PC15 PC7
1043
  /*Configure GPIO pins : PC13 PC14 PC15 PC6
-
 
1044
                           PC7 PC8 PC9 PC11
1123
   PC8 PC9 PC11 PC12 */
1045
                           PC12 */
1124
  GPIO_InitStruct.Pin = GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15 | GPIO_PIN_7
1046
  GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15|GPIO_PIN_6
1125
      | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_11 | GPIO_PIN_12;
1047
                          |GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_11
-
 
1048
                          |GPIO_PIN_12;
1126
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1049
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1127
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1050
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1128
  HAL_GPIO_Init (GPIOC, &GPIO_InitStruct);
1051
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
1129
 
1052
 
1130
  /*Configure GPIO pins : PH0 PH1 */
1053
  /*Configure GPIO pins : PH0 PH1 */
1131
  GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
1054
  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
1132
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1055
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1133
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1056
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1134
  HAL_GPIO_Init (GPIOH, &GPIO_InitStruct);
1057
  HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
1135
 
1058
 
1136
  /*Configure GPIO pins : PA0 PA1 PA8 PA11
1059
  /*Configure GPIO pins : PA0 PA1 PA8 PA11
1137
   PA12 */
1060
                           PA12 */
1138
  GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_11
1061
  GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_8|GPIO_PIN_11
1139
      | GPIO_PIN_12;
1062
                          |GPIO_PIN_12;
1140
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1063
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1141
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1064
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1142
  HAL_GPIO_Init (GPIOA, &GPIO_InitStruct);
1065
  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
1143
 
1066
 
1144
  /*Configure GPIO pin : LED_Blink_Pin */
1067
  /*Configure GPIO pin : LED_Blink_Pin */
1145
  GPIO_InitStruct.Pin = LED_Blink_Pin;
1068
  GPIO_InitStruct.Pin = LED_Blink_Pin;
1146
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1069
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1147
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1070
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1148
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1071
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
1149
  HAL_GPIO_Init (LED_Blink_GPIO_Port, &GPIO_InitStruct);
1072
  HAL_GPIO_Init(LED_Blink_GPIO_Port, &GPIO_InitStruct);
1150
 
1073
 
1151
  /*Configure GPIO pins : SPI_NSS1_Pin SPI_CD_Pin */
1074
  /*Configure GPIO pins : SPI_NSS1_Pin SPI_CD_Pin */
1152
  GPIO_InitStruct.Pin = SPI_NSS1_Pin | SPI_CD_Pin;
1075
  GPIO_InitStruct.Pin = SPI_NSS1_Pin|SPI_CD_Pin;
1153
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1076
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1154
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1077
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1155
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1078
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1156
  HAL_GPIO_Init (GPIOC, &GPIO_InitStruct);
1079
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
1157
 
1080
 
1158
  /*Configure GPIO pins : SPI_RESET_Pin SPI_NS_Temp_Pin SPI_NS_Temp2_Pin ENA_AUX_5V_Pin */
1081
  /*Configure GPIO pins : SPI_RESET_Pin SPI_NS_Temp_Pin SPI_NS_Temp2_Pin ENA_AUX_5V_Pin */
1159
  GPIO_InitStruct.Pin = SPI_RESET_Pin | SPI_NS_Temp_Pin | SPI_NS_Temp2_Pin
1082
  GPIO_InitStruct.Pin = SPI_RESET_Pin|SPI_NS_Temp_Pin|SPI_NS_Temp2_Pin|ENA_AUX_5V_Pin;
1160
      | ENA_AUX_5V_Pin;
-
 
1161
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1083
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
1162
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1084
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1163
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1085
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
1164
  HAL_GPIO_Init (GPIOB, &GPIO_InitStruct);
1086
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
1165
 
1087
 
1166
  /*Configure GPIO pins : PB11 PB12 PB13 PB14
1088
  /*Configure GPIO pins : PB11 PB12 PB13 PB14
1167
   PB15 PB3 PB4 PB5
1089
                           PB15 PB3 PB4 PB5
1168
   PB6 PB7 PB8 PB9 */
1090
                           PB6 PB7 PB8 PB9 */
1169
  GPIO_InitStruct.Pin = GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14
1091
  GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14
1170
      | GPIO_PIN_15 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6
1092
                          |GPIO_PIN_15|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
1171
      | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9;
1093
                          |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
1172
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1094
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1173
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1095
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1174
  HAL_GPIO_Init (GPIOB, &GPIO_InitStruct);
1096
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
1175
 
1097
 
1176
  /*Configure GPIO pin : STARTER_ON_Pin */
1098
  /*Configure GPIO pin : STARTER_ON_Pin */
1177
  GPIO_InitStruct.Pin = STARTER_ON_Pin;
1099
  GPIO_InitStruct.Pin = STARTER_ON_Pin;
1178
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
1100
  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
1179
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1101
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1180
  HAL_GPIO_Init (STARTER_ON_GPIO_Port, &GPIO_InitStruct);
1102
  HAL_GPIO_Init(STARTER_ON_GPIO_Port, &GPIO_InitStruct);
1181
 
1103
 
1182
  /*Configure GPIO pin : PD2 */
1104
  /*Configure GPIO pin : PD2 */
1183
  GPIO_InitStruct.Pin = GPIO_PIN_2;
1105
  GPIO_InitStruct.Pin = GPIO_PIN_2;
1184
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1106
  GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
1185
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1107
  GPIO_InitStruct.Pull = GPIO_NOPULL;
1186
  HAL_GPIO_Init (GPIOD, &GPIO_InitStruct);
1108
  HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
1187
 
1109
 
1188
}
1110
}
1189
 
1111
 
1190
/* USER CODE BEGIN 4 */
1112
/* USER CODE BEGIN 4 */
1191
 
1113
 
1192
/* USER CODE END 4 */
1114
/* USER CODE END 4 */
1193
 
1115
 
1194
/**
1116
/**
1195
 * @brief  This function is executed in case of error occurrence.
1117
  * @brief  This function is executed in case of error occurrence.
1196
 * @retval None
1118
  * @retval None
1197
 */
1119
  */
1198
void
-
 
1199
Error_Handler (void)
1120
void Error_Handler(void)
1200
{
1121
{
1201
  /* USER CODE BEGIN Error_Handler_Debug */
1122
  /* USER CODE BEGIN Error_Handler_Debug */
1202
  /* User can add his own implementation to report the HAL error return state */
1123
  /* User can add his own implementation to report the HAL error return state */
1203
 
1124
 
1204
  /* USER CODE END Error_Handler_Debug */
1125
  /* USER CODE END Error_Handler_Debug */