Rev 54 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 54 | Rev 55 | ||
|---|---|---|---|
| Line 21... | Line 21... | ||
| 21 | #include "main.h" |
21 | #include "main.h" |
| 22 | 22 | ||
| 23 | /* Private includes ----------------------------------------------------------*/ |
23 | /* Private includes ----------------------------------------------------------*/ |
| 24 | /* USER CODE BEGIN Includes */ |
24 | /* USER CODE BEGIN Includes */ |
| 25 | #include <string.h> |
25 | #include <string.h> |
| - | 26 | #include <math.h> |
|
| 26 | #include "libSerial/serial.h" |
27 | #include "libSerial/serial.h" |
| 27 | #include "libPLX/plx.h" |
28 | #include "libPLX/plx.h" |
| 28 | #include "libPLX/commsLib.h" |
29 | #include "libPLX/commsLib.h" |
| 29 | #include "misc.h" |
30 | #include "misc.h" |
| 30 | 31 | ||
| 31 | #include "libIgnTiming/rpm.h" |
32 | #include "libIgnTiming/rpm.h" |
| 32 | 33 | ||
| - | 34 | ||
| - | 35 | ||
| 33 | /* USER CODE END Includes */ |
36 | /* USER CODE END Includes */ |
| 34 | 37 | ||
| 35 | /* Private typedef -----------------------------------------------------------*/ |
38 | /* Private typedef -----------------------------------------------------------*/ |
| 36 | /* USER CODE BEGIN PTD */ |
39 | /* USER CODE BEGIN PTD */ |
| 37 | 40 | ||
| Line 175... | Line 178... | ||
| 175 | 178 | ||
| 176 | FunctionalState CHT_Enable = ENABLE; |
179 | FunctionalState CHT_Enable = ENABLE; |
| 177 | 180 | ||
| 178 | #define CORR 3 |
181 | #define CORR 3 |
| 179 | 182 | ||
| - | 183 | ||
| - | 184 | typedef struct |
|
| - | 185 | { |
|
| - | 186 | uint16_t store[TEMP_CORR]; |
|
| - | 187 | uint16_t result; |
|
| - | 188 | } tempObservation_t; |
|
| - | 189 | ||
| 180 | uint16_t Temp_Observations[NUM_SPI_TEMP_SENS] = {[0 ... NUM_SPI_TEMP_SENS - 1] = 0}; |
190 | tempObservation_t Temp_Observations[NUM_SPI_TEMP_SENS]; |
| - | 191 | ||
| - | 192 | void ResetTemp() |
|
| - | 193 | { |
|
| - | 194 | int i,j; |
|
| - | 195 | for (i=0;i<NUM_SPI_TEMP_SENS;i++) |
|
| - | 196 | { |
|
| - | 197 | Temp_Observations[i].result = 0; |
|
| - | 198 | for (j=0;j<TEMP_CORR;j++) |
|
| - | 199 | Temp_Observations[i].store[j]=0; |
|
| - | 200 | } |
|
| - | 201 | } |
|
| - | 202 | ||
| - | 203 | void AddTempReading(uint16_t reading, int channel) |
|
| - | 204 | { |
|
| - | 205 | int j; |
|
| - | 206 | for (j=TEMP_CORR-1; j>=1 ; j--) |
|
| - | 207 | { |
|
| - | 208 | Temp_Observations[channel].store[j] = Temp_Observations[channel].store[j-1]; |
|
| - | 209 | } |
|
| - | 210 | Temp_Observations[channel].store[0] = reading; |
|
| - | 211 | ||
| - | 212 | // are all the stored values close to the current reading, if so allow it through |
|
| - | 213 | // the check here is for 5 degrees C |
|
| - | 214 | char good = 1; |
|
| - | 215 | for (j=1; j<TEMP_CORR; j++) |
|
| - | 216 | if (abs((int)Temp_Observations[channel].store[j]- (int)reading)>5) |
|
| - | 217 | good = 0; |
|
| - | 218 | ||
| - | 219 | if (good) |
|
| - | 220 | Temp_Observations[channel].result = reading; |
|
| - | 221 | } |
|
| - | 222 | ||
| 181 | 223 | ||
| 182 | /// \param item The array index to send |
224 | /// \param item The array index to send |
| 183 | /// \param type the code to use for this observation |
225 | /// \param type the code to use for this observation |
| 184 | void ProcessTemp(struct usart_ctl * handle,char item, enum PLX_Observations type) |
226 | void ProcessTemp(struct usart_ctl * handle,char item, enum PLX_Observations type) |
| 185 | { |
227 | { |
| 186 | if (item > NUM_SPI_TEMP_SENS) |
228 | if (item > NUM_SPI_TEMP_SENS) |
| 187 | return; |
229 | return; |
| 188 | 230 | ||
| 189 | sendPlxInfo(handle, type , Temp_Observations[(int)item]); |
231 | sendPlxInfo(handle, type , Temp_Observations[(int)item].result); |
| 190 | 232 | ||
| 191 | } |
233 | } |
| 192 | 234 | ||
| 193 | /// \brief Reset the temperature chip select system |
235 | /// \brief Reset the temperature chip select system |
| 194 | void resetTempCS(void) |
236 | void resetTempCS(void) |
| Line 344... | Line 386... | ||
| 344 | ProcessOilPress(handle); |
386 | ProcessOilPress(handle); |
| 345 | } |
387 | } |
| 346 | /* USER CODE END 0 */ |
388 | /* USER CODE END 0 */ |
| 347 | 389 | ||
| 348 | /** |
390 | /** |
| 349 | * @brief The application entry point. |
391 | * @brief The application entry point. |
| 350 | * @retval int |
392 | * @retval int |
| 351 | */ |
393 | */ |
| 352 | int main(void) |
394 | int main(void) |
| 353 | { |
395 | { |
| - | 396 | ||
| 354 | /* USER CODE BEGIN 1 */ |
397 | /* USER CODE BEGIN 1 */ |
| 355 | 398 | ||
| 356 | /* USER CODE END 1 */ |
399 | /* USER CODE END 1 */ |
| 357 | 400 | ||
| 358 | /* MCU Configuration--------------------------------------------------------*/ |
401 | /* MCU Configuration--------------------------------------------------------*/ |
| Line 402... | Line 445... | ||
| 402 | 445 | ||
| 403 | HAL_ADC_Start_DMA(&hadc1, (uint32_t *)ADC_Samples, ADC_CHANNELS); |
446 | HAL_ADC_Start_DMA(&hadc1, (uint32_t *)ADC_Samples, ADC_CHANNELS); |
| 404 | 447 | ||
| 405 | HAL_ADC_Start_IT(&hadc1); |
448 | HAL_ADC_Start_IT(&hadc1); |
| 406 | 449 | ||
| - | 450 | ResetTemp(); // reset temperature store |
|
| - | 451 | ||
| 407 | HAL_TIM_Base_MspInit(&htim4); |
452 | HAL_TIM_Base_MspInit(&htim4); |
| 408 | HAL_TIM_Base_Start_IT(&htim4); |
453 | HAL_TIM_Base_Start_IT(&htim4); |
| 409 | 454 | ||
| 410 | // initialise all the STMCubeMX stuff |
455 | // initialise all the STMCubeMX stuff |
| 411 | HAL_TIM_Base_MspInit(&htim2); |
456 | HAL_TIM_Base_MspInit(&htim2); |
| Line 493... | Line 538... | ||
| 493 | 538 | ||
| 494 | /* USER CODE END 3 */ |
539 | /* USER CODE END 3 */ |
| 495 | } |
540 | } |
| 496 | 541 | ||
| 497 | /** |
542 | /** |
| 498 | * @brief System Clock Configuration |
543 | * @brief System Clock Configuration |
| 499 | * @retval None |
544 | * @retval None |
| 500 | */ |
545 | */ |
| 501 | void SystemClock_Config(void) |
546 | void SystemClock_Config(void) |
| 502 | { |
547 | { |
| 503 | RCC_OscInitTypeDef RCC_OscInitStruct = {0}; |
548 | RCC_OscInitTypeDef RCC_OscInitStruct = {0}; |
| 504 | RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; |
549 | RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; |
| 505 | RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; |
550 | RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; |
| 506 | 551 | ||
| 507 | /** Initializes the RCC Oscillators according to the specified parameters |
552 | /** Initializes the RCC Oscillators according to the specified parameters |
| 508 | * in the RCC_OscInitTypeDef structure. |
553 | * in the RCC_OscInitTypeDef structure. |
| 509 | */ |
554 | */ |
| 510 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_HSE; |
555 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; |
| 511 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
556 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; |
| 512 | RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; |
557 | RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1; |
| 513 | RCC_OscInitStruct.HSIState = RCC_HSI_ON; |
558 | RCC_OscInitStruct.HSIState = RCC_HSI_ON; |
| 514 | RCC_OscInitStruct.LSIState = RCC_LSI_ON; |
559 | RCC_OscInitStruct.LSIState = RCC_LSI_ON; |
| 515 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
560 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
| Line 519... | Line 564... | ||
| 519 | { |
564 | { |
| 520 | Error_Handler(); |
565 | Error_Handler(); |
| 521 | } |
566 | } |
| 522 | 567 | ||
| 523 | /** Initializes the CPU, AHB and APB buses clocks |
568 | /** Initializes the CPU, AHB and APB buses clocks |
| 524 | */ |
569 | */ |
| 525 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; |
570 | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |
| - | 571 | |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; |
|
| 526 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
572 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; |
| 527 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
573 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; |
| 528 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; |
574 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; |
| 529 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
575 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; |
| 530 | 576 | ||
| Line 539... | Line 585... | ||
| 539 | Error_Handler(); |
585 | Error_Handler(); |
| 540 | } |
586 | } |
| 541 | } |
587 | } |
| 542 | 588 | ||
| 543 | /** |
589 | /** |
| 544 | * @brief ADC1 Initialization Function |
590 | * @brief ADC1 Initialization Function |
| 545 | * @param None |
591 | * @param None |
| 546 | * @retval None |
592 | * @retval None |
| 547 | */ |
593 | */ |
| 548 | static void MX_ADC1_Init(void) |
594 | static void MX_ADC1_Init(void) |
| 549 | { |
595 | { |
| 550 | 596 | ||
| 551 | /* USER CODE BEGIN ADC1_Init 0 */ |
597 | /* USER CODE BEGIN ADC1_Init 0 */ |
| 552 | 598 | ||
| Line 557... | Line 603... | ||
| 557 | /* USER CODE BEGIN ADC1_Init 1 */ |
603 | /* USER CODE BEGIN ADC1_Init 1 */ |
| 558 | 604 | ||
| 559 | /* USER CODE END ADC1_Init 1 */ |
605 | /* USER CODE END ADC1_Init 1 */ |
| 560 | 606 | ||
| 561 | /** Common config |
607 | /** Common config |
| 562 | */ |
608 | */ |
| 563 | hadc1.Instance = ADC1; |
609 | hadc1.Instance = ADC1; |
| 564 | hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE; |
610 | hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE; |
| 565 | hadc1.Init.ContinuousConvMode = DISABLE; |
611 | hadc1.Init.ContinuousConvMode = DISABLE; |
| 566 | hadc1.Init.DiscontinuousConvMode = DISABLE; |
612 | hadc1.Init.DiscontinuousConvMode = DISABLE; |
| 567 | hadc1.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T3_TRGO; |
613 | hadc1.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T3_TRGO; |
| Line 571... | Line 617... | ||
| 571 | { |
617 | { |
| 572 | Error_Handler(); |
618 | Error_Handler(); |
| 573 | } |
619 | } |
| 574 | 620 | ||
| 575 | /** Configure Regular Channel |
621 | /** Configure Regular Channel |
| 576 | */ |
622 | */ |
| 577 | sConfig.Channel = ADC_CHANNEL_0; |
623 | sConfig.Channel = ADC_CHANNEL_0; |
| 578 | sConfig.Rank = ADC_REGULAR_RANK_1; |
624 | sConfig.Rank = ADC_REGULAR_RANK_1; |
| 579 | sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5; |
625 | sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5; |
| 580 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
626 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
| 581 | { |
627 | { |
| 582 | Error_Handler(); |
628 | Error_Handler(); |
| 583 | } |
629 | } |
| 584 | 630 | ||
| 585 | /** Configure Regular Channel |
631 | /** Configure Regular Channel |
| 586 | */ |
632 | */ |
| 587 | sConfig.Channel = ADC_CHANNEL_1; |
633 | sConfig.Channel = ADC_CHANNEL_1; |
| 588 | sConfig.Rank = ADC_REGULAR_RANK_2; |
634 | sConfig.Rank = ADC_REGULAR_RANK_2; |
| 589 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
635 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
| 590 | { |
636 | { |
| 591 | Error_Handler(); |
637 | Error_Handler(); |
| 592 | } |
638 | } |
| 593 | 639 | ||
| 594 | /** Configure Regular Channel |
640 | /** Configure Regular Channel |
| 595 | */ |
641 | */ |
| 596 | sConfig.Channel = ADC_CHANNEL_2; |
642 | sConfig.Channel = ADC_CHANNEL_2; |
| 597 | sConfig.Rank = ADC_REGULAR_RANK_3; |
643 | sConfig.Rank = ADC_REGULAR_RANK_3; |
| 598 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
644 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
| 599 | { |
645 | { |
| 600 | Error_Handler(); |
646 | Error_Handler(); |
| 601 | } |
647 | } |
| 602 | 648 | ||
| 603 | /** Configure Regular Channel |
649 | /** Configure Regular Channel |
| 604 | */ |
650 | */ |
| 605 | sConfig.Channel = ADC_CHANNEL_3; |
651 | sConfig.Channel = ADC_CHANNEL_3; |
| 606 | sConfig.Rank = ADC_REGULAR_RANK_4; |
652 | sConfig.Rank = ADC_REGULAR_RANK_4; |
| 607 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
653 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
| 608 | { |
654 | { |
| 609 | Error_Handler(); |
655 | Error_Handler(); |
| 610 | } |
656 | } |
| 611 | 657 | ||
| 612 | /** Configure Regular Channel |
658 | /** Configure Regular Channel |
| 613 | */ |
659 | */ |
| 614 | sConfig.Channel = ADC_CHANNEL_4; |
660 | sConfig.Channel = ADC_CHANNEL_4; |
| 615 | sConfig.Rank = ADC_REGULAR_RANK_5; |
661 | sConfig.Rank = ADC_REGULAR_RANK_5; |
| 616 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
662 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
| 617 | { |
663 | { |
| 618 | Error_Handler(); |
664 | Error_Handler(); |
| 619 | } |
665 | } |
| 620 | 666 | ||
| 621 | /** Configure Regular Channel |
667 | /** Configure Regular Channel |
| 622 | */ |
668 | */ |
| 623 | sConfig.Channel = ADC_CHANNEL_VREFINT; |
669 | sConfig.Channel = ADC_CHANNEL_VREFINT; |
| 624 | sConfig.Rank = ADC_REGULAR_RANK_6; |
670 | sConfig.Rank = ADC_REGULAR_RANK_6; |
| 625 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
671 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
| 626 | { |
672 | { |
| 627 | Error_Handler(); |
673 | Error_Handler(); |
| 628 | } |
674 | } |
| 629 | 675 | ||
| 630 | /** Configure Regular Channel |
676 | /** Configure Regular Channel |
| 631 | */ |
677 | */ |
| 632 | sConfig.Channel = ADC_CHANNEL_TEMPSENSOR; |
678 | sConfig.Channel = ADC_CHANNEL_TEMPSENSOR; |
| 633 | sConfig.Rank = ADC_REGULAR_RANK_7; |
679 | sConfig.Rank = ADC_REGULAR_RANK_7; |
| 634 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
680 | if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) |
| 635 | { |
681 | { |
| 636 | Error_Handler(); |
682 | Error_Handler(); |
| 637 | } |
683 | } |
| 638 | /* USER CODE BEGIN ADC1_Init 2 */ |
684 | /* USER CODE BEGIN ADC1_Init 2 */ |
| 639 | 685 | ||
| 640 | /* USER CODE END ADC1_Init 2 */ |
686 | /* USER CODE END ADC1_Init 2 */ |
| - | 687 | ||
| 641 | } |
688 | } |
| 642 | 689 | ||
| 643 | /** |
690 | /** |
| 644 | * @brief CAN Initialization Function |
691 | * @brief CAN Initialization Function |
| 645 | * @param None |
692 | * @param None |
| 646 | * @retval None |
693 | * @retval None |
| 647 | */ |
694 | */ |
| 648 | static void MX_CAN_Init(void) |
695 | static void MX_CAN_Init(void) |
| 649 | { |
696 | { |
| 650 | 697 | ||
| 651 | /* USER CODE BEGIN CAN_Init 0 */ |
698 | /* USER CODE BEGIN CAN_Init 0 */ |
| 652 | 699 | ||
| Line 672... | Line 719... | ||
| 672 | Error_Handler(); |
719 | Error_Handler(); |
| 673 | } |
720 | } |
| 674 | /* USER CODE BEGIN CAN_Init 2 */ |
721 | /* USER CODE BEGIN CAN_Init 2 */ |
| 675 | 722 | ||
| 676 | /* USER CODE END CAN_Init 2 */ |
723 | /* USER CODE END CAN_Init 2 */ |
| - | 724 | ||
| 677 | } |
725 | } |
| 678 | 726 | ||
| 679 | /** |
727 | /** |
| 680 | * @brief IWDG Initialization Function |
728 | * @brief IWDG Initialization Function |
| 681 | * @param None |
729 | * @param None |
| 682 | * @retval None |
730 | * @retval None |
| 683 | */ |
731 | */ |
| 684 | static void MX_IWDG_Init(void) |
732 | static void MX_IWDG_Init(void) |
| 685 | { |
733 | { |
| 686 | 734 | ||
| 687 | /* USER CODE BEGIN IWDG_Init 0 */ |
735 | /* USER CODE BEGIN IWDG_Init 0 */ |
| 688 | 736 | ||
| Line 699... | Line 747... | ||
| 699 | Error_Handler(); |
747 | Error_Handler(); |
| 700 | } |
748 | } |
| 701 | /* USER CODE BEGIN IWDG_Init 2 */ |
749 | /* USER CODE BEGIN IWDG_Init 2 */ |
| 702 | 750 | ||
| 703 | /* USER CODE END IWDG_Init 2 */ |
751 | /* USER CODE END IWDG_Init 2 */ |
| - | 752 | ||
| 704 | } |
753 | } |
| 705 | 754 | ||
| 706 | /** |
755 | /** |
| 707 | * @brief SPI1 Initialization Function |
756 | * @brief SPI1 Initialization Function |
| 708 | * @param None |
757 | * @param None |
| 709 | * @retval None |
758 | * @retval None |
| 710 | */ |
759 | */ |
| 711 | static void MX_SPI1_Init(void) |
760 | static void MX_SPI1_Init(void) |
| 712 | { |
761 | { |
| 713 | 762 | ||
| 714 | /* USER CODE BEGIN SPI1_Init 0 */ |
763 | /* USER CODE BEGIN SPI1_Init 0 */ |
| 715 | 764 | ||
| Line 736... | Line 785... | ||
| 736 | Error_Handler(); |
785 | Error_Handler(); |
| 737 | } |
786 | } |
| 738 | /* USER CODE BEGIN SPI1_Init 2 */ |
787 | /* USER CODE BEGIN SPI1_Init 2 */ |
| 739 | 788 | ||
| 740 | /* USER CODE END SPI1_Init 2 */ |
789 | /* USER CODE END SPI1_Init 2 */ |
| - | 790 | ||
| 741 | } |
791 | } |
| 742 | 792 | ||
| 743 | /** |
793 | /** |
| 744 | * @brief TIM2 Initialization Function |
794 | * @brief TIM2 Initialization Function |
| 745 | * @param None |
795 | * @param None |
| 746 | * @retval None |
796 | * @retval None |
| 747 | */ |
797 | */ |
| 748 | static void MX_TIM2_Init(void) |
798 | static void MX_TIM2_Init(void) |
| 749 | { |
799 | { |
| 750 | 800 | ||
| 751 | /* USER CODE BEGIN TIM2_Init 0 */ |
801 | /* USER CODE BEGIN TIM2_Init 0 */ |
| 752 | 802 | ||
| Line 800... | Line 850... | ||
| 800 | Error_Handler(); |
850 | Error_Handler(); |
| 801 | } |
851 | } |
| 802 | /* USER CODE BEGIN TIM2_Init 2 */ |
852 | /* USER CODE BEGIN TIM2_Init 2 */ |
| 803 | 853 | ||
| 804 | /* USER CODE END TIM2_Init 2 */ |
854 | /* USER CODE END TIM2_Init 2 */ |
| - | 855 | ||
| 805 | } |
856 | } |
| 806 | 857 | ||
| 807 | /** |
858 | /** |
| 808 | * @brief TIM3 Initialization Function |
859 | * @brief TIM3 Initialization Function |
| 809 | * @param None |
860 | * @param None |
| 810 | * @retval None |
861 | * @retval None |
| 811 | */ |
862 | */ |
| 812 | static void MX_TIM3_Init(void) |
863 | static void MX_TIM3_Init(void) |
| 813 | { |
864 | { |
| 814 | 865 | ||
| 815 | /* USER CODE BEGIN TIM3_Init 0 */ |
866 | /* USER CODE BEGIN TIM3_Init 0 */ |
| 816 | 867 | ||
| Line 861... | Line 912... | ||
| 861 | Error_Handler(); |
912 | Error_Handler(); |
| 862 | } |
913 | } |
| 863 | /* USER CODE BEGIN TIM3_Init 2 */ |
914 | /* USER CODE BEGIN TIM3_Init 2 */ |
| 864 | 915 | ||
| 865 | /* USER CODE END TIM3_Init 2 */ |
916 | /* USER CODE END TIM3_Init 2 */ |
| - | 917 | ||
| 866 | } |
918 | } |
| 867 | 919 | ||
| 868 | /** |
920 | /** |
| 869 | * @brief TIM4 Initialization Function |
921 | * @brief TIM4 Initialization Function |
| 870 | * @param None |
922 | * @param None |
| 871 | * @retval None |
923 | * @retval None |
| 872 | */ |
924 | */ |
| 873 | static void MX_TIM4_Init(void) |
925 | static void MX_TIM4_Init(void) |
| 874 | { |
926 | { |
| 875 | 927 | ||
| 876 | /* USER CODE BEGIN TIM4_Init 0 */ |
928 | /* USER CODE BEGIN TIM4_Init 0 */ |
| 877 | 929 | ||
| Line 905... | Line 957... | ||
| 905 | Error_Handler(); |
957 | Error_Handler(); |
| 906 | } |
958 | } |
| 907 | /* USER CODE BEGIN TIM4_Init 2 */ |
959 | /* USER CODE BEGIN TIM4_Init 2 */ |
| 908 | 960 | ||
| 909 | /* USER CODE END TIM4_Init 2 */ |
961 | /* USER CODE END TIM4_Init 2 */ |
| - | 962 | ||
| 910 | } |
963 | } |
| 911 | 964 | ||
| 912 | /** |
965 | /** |
| 913 | * @brief USART1 Initialization Function |
966 | * @brief USART1 Initialization Function |
| 914 | * @param None |
967 | * @param None |
| 915 | * @retval None |
968 | * @retval None |
| 916 | */ |
969 | */ |
| 917 | static void MX_USART1_UART_Init(void) |
970 | static void MX_USART1_UART_Init(void) |
| 918 | { |
971 | { |
| 919 | 972 | ||
| 920 | /* USER CODE BEGIN USART1_Init 0 */ |
973 | /* USER CODE BEGIN USART1_Init 0 */ |
| 921 | 974 | ||
| Line 937... | Line 990... | ||
| 937 | Error_Handler(); |
990 | Error_Handler(); |
| 938 | } |
991 | } |
| 939 | /* USER CODE BEGIN USART1_Init 2 */ |
992 | /* USER CODE BEGIN USART1_Init 2 */ |
| 940 | 993 | ||
| 941 | /* USER CODE END USART1_Init 2 */ |
994 | /* USER CODE END USART1_Init 2 */ |
| - | 995 | ||
| 942 | } |
996 | } |
| 943 | 997 | ||
| 944 | /** |
998 | /** |
| 945 | * Enable DMA controller clock |
999 | * Enable DMA controller clock |
| 946 | */ |
1000 | */ |
| 947 | static void MX_DMA_Init(void) |
1001 | static void MX_DMA_Init(void) |
| 948 | { |
1002 | { |
| 949 | 1003 | ||
| 950 | /* DMA controller clock enable */ |
1004 | /* DMA controller clock enable */ |
| 951 | __HAL_RCC_DMA1_CLK_ENABLE(); |
1005 | __HAL_RCC_DMA1_CLK_ENABLE(); |
| 952 | 1006 | ||
| 953 | /* DMA interrupt init */ |
1007 | /* DMA interrupt init */ |
| 954 | /* DMA1_Channel1_IRQn interrupt configuration */ |
1008 | /* DMA1_Channel1_IRQn interrupt configuration */ |
| 955 | HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0); |
1009 | HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0); |
| 956 | HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); |
1010 | HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); |
| - | 1011 | ||
| 957 | } |
1012 | } |
| 958 | 1013 | ||
| 959 | /** |
1014 | /** |
| 960 | * @brief GPIO Initialization Function |
1015 | * @brief GPIO Initialization Function |
| 961 | * @param None |
1016 | * @param None |
| 962 | * @retval None |
1017 | * @retval None |
| 963 | */ |
1018 | */ |
| 964 | static void MX_GPIO_Init(void) |
1019 | static void MX_GPIO_Init(void) |
| 965 | { |
1020 | { |
| 966 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
1021 | GPIO_InitTypeDef GPIO_InitStruct = {0}; |
| 967 | /* USER CODE BEGIN MX_GPIO_Init_1 */ |
1022 | /* USER CODE BEGIN MX_GPIO_Init_1 */ |
| 968 | /* USER CODE END MX_GPIO_Init_1 */ |
1023 | /* USER CODE END MX_GPIO_Init_1 */ |
| 969 | 1024 | ||
| 970 | /* GPIO Ports Clock Enable */ |
1025 | /* GPIO Ports Clock Enable */ |
| 971 | __HAL_RCC_GPIOC_CLK_ENABLE(); |
1026 | __HAL_RCC_GPIOC_CLK_ENABLE(); |
| 972 | __HAL_RCC_GPIOD_CLK_ENABLE(); |
1027 | __HAL_RCC_GPIOD_CLK_ENABLE(); |
| 973 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
1028 | __HAL_RCC_GPIOA_CLK_ENABLE(); |
| Line 975... | Line 1030... | ||
| 975 | 1030 | ||
| 976 | /*Configure GPIO pin Output Level */ |
1031 | /*Configure GPIO pin Output Level */ |
| 977 | HAL_GPIO_WritePin(LED_Blink_GPIO_Port, LED_Blink_Pin, GPIO_PIN_RESET); |
1032 | HAL_GPIO_WritePin(LED_Blink_GPIO_Port, LED_Blink_Pin, GPIO_PIN_RESET); |
| 978 | 1033 | ||
| 979 | /*Configure GPIO pin Output Level */ |
1034 | /*Configure GPIO pin Output Level */ |
| 980 | HAL_GPIO_WritePin(GPIOB, SPI_CS_Clk_Pin | SPI_CS_D_Pin | ENA_AUX_5V_Pin, GPIO_PIN_RESET); |
1035 | HAL_GPIO_WritePin(GPIOB, SPI_CS_Clk_Pin|SPI_CS_D_Pin|ENA_AUX_5V_Pin, GPIO_PIN_RESET); |
| 981 | 1036 | ||
| 982 | /*Configure GPIO pin : LED_Blink_Pin */ |
1037 | /*Configure GPIO pin : LED_Blink_Pin */ |
| 983 | GPIO_InitStruct.Pin = LED_Blink_Pin; |
1038 | GPIO_InitStruct.Pin = LED_Blink_Pin; |
| 984 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
1039 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| 985 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
1040 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 986 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
1041 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
| 987 | HAL_GPIO_Init(LED_Blink_GPIO_Port, &GPIO_InitStruct); |
1042 | HAL_GPIO_Init(LED_Blink_GPIO_Port, &GPIO_InitStruct); |
| 988 | 1043 | ||
| 989 | /*Configure GPIO pins : SPI_CS_Clk_Pin SPI_CS_D_Pin ENA_AUX_5V_Pin */ |
1044 | /*Configure GPIO pins : SPI_CS_Clk_Pin SPI_CS_D_Pin */ |
| 990 | GPIO_InitStruct.Pin = SPI_CS_Clk_Pin | SPI_CS_D_Pin | ENA_AUX_5V_Pin; |
1045 | GPIO_InitStruct.Pin = SPI_CS_Clk_Pin|SPI_CS_D_Pin; |
| 991 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
1046 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
| 992 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
1047 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 993 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
1048 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; |
| 994 | HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); |
1049 | HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); |
| 995 | 1050 | ||
| 996 | /*Configure GPIO pin : STARTER_ON_Pin */ |
1051 | /*Configure GPIO pin : STARTER_ON_Pin */ |
| 997 | GPIO_InitStruct.Pin = STARTER_ON_Pin; |
1052 | GPIO_InitStruct.Pin = STARTER_ON_Pin; |
| 998 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; |
1053 | GPIO_InitStruct.Mode = GPIO_MODE_INPUT; |
| 999 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
1054 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
| 1000 | HAL_GPIO_Init(STARTER_ON_GPIO_Port, &GPIO_InitStruct); |
1055 | HAL_GPIO_Init(STARTER_ON_GPIO_Port, &GPIO_InitStruct); |
| 1001 | 1056 | ||
| - | 1057 | /*Configure GPIO pin : ENA_AUX_5V_Pin */ |
|
| - | 1058 | GPIO_InitStruct.Pin = ENA_AUX_5V_Pin; |
|
| - | 1059 | GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; |
|
| - | 1060 | GPIO_InitStruct.Pull = GPIO_NOPULL; |
|
| - | 1061 | GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; |
|
| - | 1062 | HAL_GPIO_Init(ENA_AUX_5V_GPIO_Port, &GPIO_InitStruct); |
|
| - | 1063 | ||
| 1002 | /* USER CODE BEGIN MX_GPIO_Init_2 */ |
1064 | /* USER CODE BEGIN MX_GPIO_Init_2 */ |
| 1003 | /* USER CODE END MX_GPIO_Init_2 */ |
1065 | /* USER CODE END MX_GPIO_Init_2 */ |
| 1004 | } |
1066 | } |
| 1005 | 1067 | ||
| 1006 | /* USER CODE BEGIN 4 */ |
1068 | /* USER CODE BEGIN 4 */ |
| 1007 | 1069 | ||
| 1008 | /* USER CODE END 4 */ |
1070 | /* USER CODE END 4 */ |
| 1009 | 1071 | ||
| 1010 | /** |
1072 | /** |
| 1011 | * @brief This function is executed in case of error occurrence. |
1073 | * @brief This function is executed in case of error occurrence. |
| 1012 | * @retval None |
1074 | * @retval None |
| 1013 | */ |
1075 | */ |
| 1014 | void Error_Handler(void) |
1076 | void Error_Handler(void) |
| 1015 | { |
1077 | { |
| 1016 | /* USER CODE BEGIN Error_Handler_Debug */ |
1078 | /* USER CODE BEGIN Error_Handler_Debug */ |
| 1017 | /* User can add his own implementation to report the HAL error return state */ |
1079 | /* User can add his own implementation to report the HAL error return state */ |
| 1018 | 1080 | ||
| 1019 | /* USER CODE END Error_Handler_Debug */ |
1081 | /* USER CODE END Error_Handler_Debug */ |
| 1020 | } |
1082 | } |
| 1021 | 1083 | ||
| 1022 | #ifdef USE_FULL_ASSERT |
1084 | #ifdef USE_FULL_ASSERT |
| 1023 | /** |
1085 | /** |
| 1024 | * @brief Reports the name of the source file and the source line number |
1086 | * @brief Reports the name of the source file and the source line number |
| 1025 | * where the assert_param error has occurred. |
1087 | * where the assert_param error has occurred. |
| 1026 | * @param file: pointer to the source file name |
1088 | * @param file: pointer to the source file name |
| 1027 | * @param line: assert_param error line source number |
1089 | * @param line: assert_param error line source number |
| 1028 | * @retval None |
1090 | * @retval None |
| 1029 | */ |
1091 | */ |
| 1030 | void assert_failed(uint8_t *file, uint32_t line) |
1092 | void assert_failed(uint8_t *file, uint32_t line) |
| 1031 | { |
1093 | { |
| 1032 | /* USER CODE BEGIN 6 */ |
1094 | /* USER CODE BEGIN 6 */ |
| 1033 | /* User can add his own implementation to report the file name and line number, |
1095 | /* User can add his own implementation to report the file name and line number, |
| 1034 | tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ |
1096 | tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ |