Advertisement
Guest User

main.c

a guest
Jun 4th, 2022
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 29.40 KB | None | 0 0
  1. /* USER CODE BEGIN Header */
  2. /**
  3.   ******************************************************************************
  4.   * @file           : main.c
  5.   * @brief          : Main program body
  6.   ******************************************************************************
  7.   * @attention
  8.   *
  9.   * Copyright (c) 2022 STMicroelectronics.
  10.   * All rights reserved.
  11.   *
  12.   * This software is licensed under terms that can be found in the LICENSE file
  13.   * in the root directory of this software component.
  14.   * If no LICENSE file comes with this software, it is provided AS-IS.
  15.   *
  16.   ******************************************************************************
  17.   */
  18. /* USER CODE END Header */
  19. /* Includes ------------------------------------------------------------------*/
  20. #include "main.h"
  21.  
  22. /* Private includes ----------------------------------------------------------*/
  23. /* USER CODE BEGIN Includes */
  24. #include "controll.h"
  25. #include "pfm.h"
  26. /* USER CODE END Includes */
  27.  
  28. /* Private typedef -----------------------------------------------------------*/
  29. /* USER CODE BEGIN PTD */
  30. /* USER CODE END PTD */
  31.  
  32. /* Private define ------------------------------------------------------------*/
  33. /* USER CODE BEGIN PD */
  34. /* USER CODE END PD */
  35.  
  36. /* Private macro -------------------------------------------------------------*/
  37. /* USER CODE BEGIN PM */
  38. /* USER CODE END PM */
  39.  
  40. /* Private variables ---------------------------------------------------------*/
  41.  
  42. TIM_HandleTypeDef htim1;
  43. TIM_HandleTypeDef htim2;
  44. TIM_HandleTypeDef htim3;
  45. TIM_HandleTypeDef htim4;
  46. TIM_HandleTypeDef htim5;
  47. TIM_HandleTypeDef htim8;
  48. TIM_HandleTypeDef htim12;
  49. TIM_HandleTypeDef htim13;
  50. TIM_HandleTypeDef htim14;
  51. TIM_HandleTypeDef htim15;
  52. TIM_HandleTypeDef htim16;
  53. TIM_HandleTypeDef htim17;
  54.  
  55. UART_HandleTypeDef huart5;
  56. UART_HandleTypeDef huart3;
  57. DMA_HandleTypeDef hdma_uart5_rx;
  58.  
  59. /* USER CODE BEGIN PV */
  60. /* USER CODE END PV */
  61.  
  62. /* Private function prototypes -----------------------------------------------*/
  63. void SystemClock_Config(void);
  64. static void MX_GPIO_Init(void);
  65. static void MX_USART3_UART_Init(void);
  66. static void MX_TIM13_Init(void);
  67. static void MX_TIM14_Init(void);
  68. static void MX_TIM16_Init(void);
  69. static void MX_TIM1_Init(void);
  70. static void MX_TIM2_Init(void);
  71. static void MX_TIM3_Init(void);
  72. static void MX_TIM4_Init(void);
  73. static void MX_TIM5_Init(void);
  74. static void MX_TIM8_Init(void);
  75. static void MX_TIM12_Init(void);
  76. static void MX_TIM15_Init(void);
  77. static void MX_DMA_Init(void);
  78. static void MX_UART5_Init(void);
  79. static void MX_TIM17_Init(void);
  80. /* USER CODE BEGIN PFP */
  81. /* USER CODE END PFP */
  82.  
  83. /* Private user code ---------------------------------------------------------*/
  84. /* USER CODE BEGIN 0 */
  85. /* USER CODE END 0 */
  86.  
  87. /**
  88.   * @brief  The application entry point.
  89.   * @retval int
  90.   */
  91. int main(void)
  92. {
  93.   /* USER CODE BEGIN 1 */
  94.   /* USER CODE END 1 */
  95.  
  96.   /* MCU Configuration--------------------------------------------------------*/
  97.  
  98.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  99.   HAL_Init();
  100.  
  101.   /* USER CODE BEGIN Init */
  102.   /* USER CODE END Init */
  103.  
  104.   /* Configure the system clock */
  105.   SystemClock_Config();
  106.  
  107.   /* USER CODE BEGIN SysInit */
  108.   /* USER CODE END SysInit */
  109.  
  110.   /* Initialize all configured peripherals */
  111.   MX_GPIO_Init();
  112.   MX_USART3_UART_Init();
  113.   MX_TIM13_Init();
  114.   MX_TIM14_Init();
  115.   MX_TIM16_Init();
  116.   MX_TIM1_Init();
  117.   MX_TIM2_Init();
  118.   MX_TIM3_Init();
  119.   MX_TIM4_Init();
  120.   MX_TIM5_Init();
  121.   MX_TIM8_Init();
  122.   MX_TIM12_Init();
  123.   MX_TIM15_Init();
  124.   MX_DMA_Init();
  125.   MX_UART5_Init();
  126.   MX_TIM17_Init();
  127.   /* USER CODE BEGIN 2 */
  128.   // Defines which channel has which counter/timer
  129. //  PFM_TypeDef pfmChannels[6];
  130. //  pfmChannels[0].htim = &htim12;
  131. //  pfmChannels[0].timChannel = TIM_CHANNEL_2;
  132. //  pfmChannels[0].htimCounter = &htim8;
  133. //  pfmChannels[0].timChannelCounter = TIM_CHANNEL_1;
  134. //  pfmChannels[1].htim = &htim14;
  135. //  pfmChannels[1].timChannel = TIM_CHANNEL_1;
  136. //  pfmChannels[1].htimCounter = &htim4;
  137. //  pfmChannels[1].timChannelCounter = TIM_CHANNEL_1;
  138. //  pfmChannels[2].htim = &htim13;
  139. //  pfmChannels[2].timChannel = TIM_CHANNEL_1;
  140. //  pfmChannels[2].htimCounter = &htim1;
  141. //  pfmChannels[2].timChannelCounter = TIM_CHANNEL_1;
  142. //  pfmChannels[3].htim = &htim17;
  143. //  pfmChannels[3].timChannel = TIM_CHANNEL_1;
  144. //  pfmChannels[3].htimCounter = &htim3;
  145. //  pfmChannels[3].timChannelCounter = TIM_CHANNEL_1;
  146. //  pfmChannels[4].htim = &htim16;
  147. //  pfmChannels[4].timChannel = TIM_CHANNEL_1;
  148. //  pfmChannels[4].htimCounter = &htim2;
  149. //  pfmChannels[4].timChannelCounter = TIM_CHANNEL_1;
  150. //  pfmChannels[5].htim = &htim15;
  151. //  pfmChannels[5].timChannel = TIM_CHANNEL_1;
  152. //  pfmChannels[5].htimCounter = &htim5;
  153. //  pfmChannels[5].timChannelCounter = TIM_CHANNEL_1;
  154.   /* USER CODE END 2 */
  155.  
  156.   /* Infinite loop */
  157.   /* USER CODE BEGIN WHILE */
  158.   //StartUp(&huart5, pfmChannels, 6);
  159.  
  160.     // FIXME Does not send anything
  161.     const char* test = "TEST_TRANSMIT";
  162.     HAL_UART_Transmit(&huart5, (uint8_t*) &test, 13, 50000);
  163.  
  164.   while (1)
  165.   {
  166.  
  167.     //Update();
  168.     /* USER CODE END WHILE */
  169.  
  170.     /* USER CODE BEGIN 3 */
  171.   }
  172.   /* USER CODE END 3 */
  173. }
  174.  
  175. /**
  176.   * @brief System Clock Configuration
  177.   * @retval None
  178.   */
  179. void SystemClock_Config(void)
  180. {
  181.   RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  182.   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  183.  
  184.   /** Supply configuration update enable
  185.   */
  186.   HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);
  187.  
  188.   /** Configure the main internal regulator output voltage
  189.   */
  190.   __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
  191.  
  192.   while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
  193.  
  194.   /** Initializes the RCC Oscillators according to the specified parameters
  195.   * in the RCC_OscInitTypeDef structure.
  196.   */
  197.   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  198.   RCC_OscInitStruct.HSIState = RCC_HSI_DIV1;
  199.   RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  200.   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  201.   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  202.   RCC_OscInitStruct.PLL.PLLM = 4;
  203.   RCC_OscInitStruct.PLL.PLLN = 32;
  204.   RCC_OscInitStruct.PLL.PLLP = 2;
  205.   RCC_OscInitStruct.PLL.PLLQ = 4;
  206.   RCC_OscInitStruct.PLL.PLLR = 2;
  207.   RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1VCIRANGE_3;
  208.   RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1VCOWIDE;
  209.   RCC_OscInitStruct.PLL.PLLFRACN = 0;
  210.   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  211.   {
  212.     Error_Handler();
  213.   }
  214.  
  215.   /** Initializes the CPU, AHB and APB buses clocks
  216.   */
  217.   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  218.                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2
  219.                               |RCC_CLOCKTYPE_D3PCLK1|RCC_CLOCKTYPE_D1PCLK1;
  220.   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  221.   RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
  222.   RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV2;
  223.   RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV2;
  224.   RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;
  225.   RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV2;
  226.   RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV2;
  227.  
  228.   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  229.   {
  230.     Error_Handler();
  231.   }
  232. }
  233.  
  234. /**
  235.   * @brief TIM1 Initialization Function
  236.   * @param None
  237.   * @retval None
  238.   */
  239. static void MX_TIM1_Init(void)
  240. {
  241.  
  242.   /* USER CODE BEGIN TIM1_Init 0 */
  243.  
  244.   /* USER CODE END TIM1_Init 0 */
  245.  
  246.   TIM_SlaveConfigTypeDef sSlaveConfig = {0};
  247.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  248.  
  249.   /* USER CODE BEGIN TIM1_Init 1 */
  250.  
  251.   /* USER CODE END TIM1_Init 1 */
  252.   htim1.Instance = TIM1;
  253.   htim1.Init.Prescaler = 0;
  254.   htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
  255.   htim1.Init.Period = 65535;
  256.   htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  257.   htim1.Init.RepetitionCounter = 0;
  258.   htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  259.   if (HAL_TIM_Base_Init(&htim1) != HAL_OK)
  260.   {
  261.     Error_Handler();
  262.   }
  263.   sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;
  264.   sSlaveConfig.InputTrigger = TIM_TS_TI1F_ED;
  265.   sSlaveConfig.TriggerFilter = 0;
  266.   if (HAL_TIM_SlaveConfigSynchro(&htim1, &sSlaveConfig) != HAL_OK)
  267.   {
  268.     Error_Handler();
  269.   }
  270.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  271.   sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
  272.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  273.   if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
  274.   {
  275.     Error_Handler();
  276.   }
  277.   /* USER CODE BEGIN TIM1_Init 2 */
  278.  
  279.   /* USER CODE END TIM1_Init 2 */
  280.  
  281. }
  282.  
  283. /**
  284.   * @brief TIM2 Initialization Function
  285.   * @param None
  286.   * @retval None
  287.   */
  288. static void MX_TIM2_Init(void)
  289. {
  290.  
  291.   /* USER CODE BEGIN TIM2_Init 0 */
  292.  
  293.   /* USER CODE END TIM2_Init 0 */
  294.  
  295.   TIM_SlaveConfigTypeDef sSlaveConfig = {0};
  296.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  297.  
  298.   /* USER CODE BEGIN TIM2_Init 1 */
  299.  
  300.   /* USER CODE END TIM2_Init 1 */
  301.   htim2.Instance = TIM2;
  302.   htim2.Init.Prescaler = 0;
  303.   htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
  304.   htim2.Init.Period = 4294967295;
  305.   htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  306.   htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  307.   if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
  308.   {
  309.     Error_Handler();
  310.   }
  311.   sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;
  312.   sSlaveConfig.InputTrigger = TIM_TS_TI1F_ED;
  313.   sSlaveConfig.TriggerFilter = 0;
  314.   if (HAL_TIM_SlaveConfigSynchro(&htim2, &sSlaveConfig) != HAL_OK)
  315.   {
  316.     Error_Handler();
  317.   }
  318.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  319.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  320.   if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
  321.   {
  322.     Error_Handler();
  323.   }
  324.   /* USER CODE BEGIN TIM2_Init 2 */
  325.  
  326.   /* USER CODE END TIM2_Init 2 */
  327.  
  328. }
  329.  
  330. /**
  331.   * @brief TIM3 Initialization Function
  332.   * @param None
  333.   * @retval None
  334.   */
  335. static void MX_TIM3_Init(void)
  336. {
  337.  
  338.   /* USER CODE BEGIN TIM3_Init 0 */
  339.  
  340.   /* USER CODE END TIM3_Init 0 */
  341.  
  342.   TIM_SlaveConfigTypeDef sSlaveConfig = {0};
  343.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  344.  
  345.   /* USER CODE BEGIN TIM3_Init 1 */
  346.  
  347.   /* USER CODE END TIM3_Init 1 */
  348.   htim3.Instance = TIM3;
  349.   htim3.Init.Prescaler = 0;
  350.   htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
  351.   htim3.Init.Period = 65535;
  352.   htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  353.   htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  354.   if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
  355.   {
  356.     Error_Handler();
  357.   }
  358.   sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;
  359.   sSlaveConfig.InputTrigger = TIM_TS_TI1F_ED;
  360.   sSlaveConfig.TriggerFilter = 0;
  361.   if (HAL_TIM_SlaveConfigSynchro(&htim3, &sSlaveConfig) != HAL_OK)
  362.   {
  363.     Error_Handler();
  364.   }
  365.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  366.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  367.   if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
  368.   {
  369.     Error_Handler();
  370.   }
  371.   /* USER CODE BEGIN TIM3_Init 2 */
  372.  
  373.   /* USER CODE END TIM3_Init 2 */
  374.  
  375. }
  376.  
  377. /**
  378.   * @brief TIM4 Initialization Function
  379.   * @param None
  380.   * @retval None
  381.   */
  382. static void MX_TIM4_Init(void)
  383. {
  384.  
  385.   /* USER CODE BEGIN TIM4_Init 0 */
  386.  
  387.   /* USER CODE END TIM4_Init 0 */
  388.  
  389.   TIM_SlaveConfigTypeDef sSlaveConfig = {0};
  390.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  391.  
  392.   /* USER CODE BEGIN TIM4_Init 1 */
  393.  
  394.   /* USER CODE END TIM4_Init 1 */
  395.   htim4.Instance = TIM4;
  396.   htim4.Init.Prescaler = 0;
  397.   htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
  398.   htim4.Init.Period = 65535;
  399.   htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  400.   htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  401.   if (HAL_TIM_Base_Init(&htim4) != HAL_OK)
  402.   {
  403.     Error_Handler();
  404.   }
  405.   sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;
  406.   sSlaveConfig.InputTrigger = TIM_TS_TI1F_ED;
  407.   sSlaveConfig.TriggerFilter = 0;
  408.   if (HAL_TIM_SlaveConfigSynchro(&htim4, &sSlaveConfig) != HAL_OK)
  409.   {
  410.     Error_Handler();
  411.   }
  412.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  413.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  414.   if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
  415.   {
  416.     Error_Handler();
  417.   }
  418.   /* USER CODE BEGIN TIM4_Init 2 */
  419.  
  420.   /* USER CODE END TIM4_Init 2 */
  421.  
  422. }
  423.  
  424. /**
  425.   * @brief TIM5 Initialization Function
  426.   * @param None
  427.   * @retval None
  428.   */
  429. static void MX_TIM5_Init(void)
  430. {
  431.  
  432.   /* USER CODE BEGIN TIM5_Init 0 */
  433.  
  434.   /* USER CODE END TIM5_Init 0 */
  435.  
  436.   TIM_SlaveConfigTypeDef sSlaveConfig = {0};
  437.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  438.  
  439.   /* USER CODE BEGIN TIM5_Init 1 */
  440.  
  441.   /* USER CODE END TIM5_Init 1 */
  442.   htim5.Instance = TIM5;
  443.   htim5.Init.Prescaler = 0;
  444.   htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
  445.   htim5.Init.Period = 4294967295;
  446.   htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  447.   htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  448.   if (HAL_TIM_Base_Init(&htim5) != HAL_OK)
  449.   {
  450.     Error_Handler();
  451.   }
  452.   sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;
  453.   sSlaveConfig.InputTrigger = TIM_TS_TI1F_ED;
  454.   sSlaveConfig.TriggerFilter = 0;
  455.   if (HAL_TIM_SlaveConfigSynchro(&htim5, &sSlaveConfig) != HAL_OK)
  456.   {
  457.     Error_Handler();
  458.   }
  459.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  460.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  461.   if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
  462.   {
  463.     Error_Handler();
  464.   }
  465.   /* USER CODE BEGIN TIM5_Init 2 */
  466.  
  467.   /* USER CODE END TIM5_Init 2 */
  468.  
  469. }
  470.  
  471. /**
  472.   * @brief TIM8 Initialization Function
  473.   * @param None
  474.   * @retval None
  475.   */
  476. static void MX_TIM8_Init(void)
  477. {
  478.  
  479.   /* USER CODE BEGIN TIM8_Init 0 */
  480.  
  481.   /* USER CODE END TIM8_Init 0 */
  482.  
  483.   TIM_SlaveConfigTypeDef sSlaveConfig = {0};
  484.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  485.  
  486.   /* USER CODE BEGIN TIM8_Init 1 */
  487.  
  488.   /* USER CODE END TIM8_Init 1 */
  489.   htim8.Instance = TIM8;
  490.   htim8.Init.Prescaler = 0;
  491.   htim8.Init.CounterMode = TIM_COUNTERMODE_UP;
  492.   htim8.Init.Period = 0x1e;
  493.   htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  494.   htim8.Init.RepetitionCounter = 0;
  495.   htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  496.   if (HAL_TIM_Base_Init(&htim8) != HAL_OK)
  497.   {
  498.     Error_Handler();
  499.   }
  500.   sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;
  501.   sSlaveConfig.InputTrigger = TIM_TS_TI1F_ED;
  502.   sSlaveConfig.TriggerFilter = 0;
  503.   if (HAL_TIM_SlaveConfigSynchro(&htim8, &sSlaveConfig) != HAL_OK)
  504.   {
  505.     Error_Handler();
  506.   }
  507.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  508.   sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET;
  509.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  510.   if (HAL_TIMEx_MasterConfigSynchronization(&htim8, &sMasterConfig) != HAL_OK)
  511.   {
  512.     Error_Handler();
  513.   }
  514.   /* USER CODE BEGIN TIM8_Init 2 */
  515.  
  516.   /* USER CODE END TIM8_Init 2 */
  517.  
  518. }
  519.  
  520. /**
  521.   * @brief TIM12 Initialization Function
  522.   * @param None
  523.   * @retval None
  524.   */
  525. static void MX_TIM12_Init(void)
  526. {
  527.  
  528.   /* USER CODE BEGIN TIM12_Init 0 */
  529.  
  530.   /* USER CODE END TIM12_Init 0 */
  531.  
  532.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  533.   TIM_OC_InitTypeDef sConfigOC = {0};
  534.  
  535.   /* USER CODE BEGIN TIM12_Init 1 */
  536.  
  537.   /* USER CODE END TIM12_Init 1 */
  538.   htim12.Instance = TIM12;
  539.   htim12.Init.Prescaler = 0;
  540.   htim12.Init.CounterMode = TIM_COUNTERMODE_UP;
  541.   htim12.Init.Period = 65535;
  542.   htim12.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  543.   htim12.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  544.   if (HAL_TIM_Base_Init(&htim12) != HAL_OK)
  545.   {
  546.     Error_Handler();
  547.   }
  548.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
  549.   if (HAL_TIM_ConfigClockSource(&htim12, &sClockSourceConfig) != HAL_OK)
  550.   {
  551.     Error_Handler();
  552.   }
  553.   if (HAL_TIM_PWM_Init(&htim12) != HAL_OK)
  554.   {
  555.     Error_Handler();
  556.   }
  557.   sConfigOC.OCMode = TIM_OCMODE_PWM1;
  558.   sConfigOC.Pulse = 0;
  559.   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  560.   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  561.   if (HAL_TIM_PWM_ConfigChannel(&htim12, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
  562.   {
  563.     Error_Handler();
  564.   }
  565.   /* USER CODE BEGIN TIM12_Init 2 */
  566.  
  567.   /* USER CODE END TIM12_Init 2 */
  568.   HAL_TIM_MspPostInit(&htim12);
  569.  
  570. }
  571.  
  572. /**
  573.   * @brief TIM13 Initialization Function
  574.   * @param None
  575.   * @retval None
  576.   */
  577. static void MX_TIM13_Init(void)
  578. {
  579.  
  580.   /* USER CODE BEGIN TIM13_Init 0 */
  581.  
  582.   /* USER CODE END TIM13_Init 0 */
  583.  
  584.   TIM_OC_InitTypeDef sConfigOC = {0};
  585.  
  586.   /* USER CODE BEGIN TIM13_Init 1 */
  587.  
  588.   /* USER CODE END TIM13_Init 1 */
  589.   htim13.Instance = TIM13;
  590.   htim13.Init.Prescaler = 0;
  591.   htim13.Init.CounterMode = TIM_COUNTERMODE_UP;
  592.   htim13.Init.Period = 65535;
  593.   htim13.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  594.   htim13.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  595.   if (HAL_TIM_Base_Init(&htim13) != HAL_OK)
  596.   {
  597.     Error_Handler();
  598.   }
  599.   if (HAL_TIM_PWM_Init(&htim13) != HAL_OK)
  600.   {
  601.     Error_Handler();
  602.   }
  603.   sConfigOC.OCMode = TIM_OCMODE_PWM1;
  604.   sConfigOC.Pulse = 0;
  605.   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  606.   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  607.   if (HAL_TIM_PWM_ConfigChannel(&htim13, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  608.   {
  609.     Error_Handler();
  610.   }
  611.   /* USER CODE BEGIN TIM13_Init 2 */
  612.  
  613.   /* USER CODE END TIM13_Init 2 */
  614.   HAL_TIM_MspPostInit(&htim13);
  615.  
  616. }
  617.  
  618. /**
  619.   * @brief TIM14 Initialization Function
  620.   * @param None
  621.   * @retval None
  622.   */
  623. static void MX_TIM14_Init(void)
  624. {
  625.  
  626.   /* USER CODE BEGIN TIM14_Init 0 */
  627.  
  628.   /* USER CODE END TIM14_Init 0 */
  629.  
  630.   TIM_OC_InitTypeDef sConfigOC = {0};
  631.  
  632.   /* USER CODE BEGIN TIM14_Init 1 */
  633.  
  634.   /* USER CODE END TIM14_Init 1 */
  635.   htim14.Instance = TIM14;
  636.   htim14.Init.Prescaler = 0;
  637.   htim14.Init.CounterMode = TIM_COUNTERMODE_UP;
  638.   htim14.Init.Period = 65535;
  639.   htim14.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  640.   htim14.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  641.   if (HAL_TIM_Base_Init(&htim14) != HAL_OK)
  642.   {
  643.     Error_Handler();
  644.   }
  645.   if (HAL_TIM_PWM_Init(&htim14) != HAL_OK)
  646.   {
  647.     Error_Handler();
  648.   }
  649.   sConfigOC.OCMode = TIM_OCMODE_PWM1;
  650.   sConfigOC.Pulse = 0;
  651.   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  652.   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  653.   if (HAL_TIM_PWM_ConfigChannel(&htim14, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  654.   {
  655.     Error_Handler();
  656.   }
  657.   /* USER CODE BEGIN TIM14_Init 2 */
  658.  
  659.   /* USER CODE END TIM14_Init 2 */
  660.   HAL_TIM_MspPostInit(&htim14);
  661.  
  662. }
  663.  
  664. /**
  665.   * @brief TIM15 Initialization Function
  666.   * @param None
  667.   * @retval None
  668.   */
  669. static void MX_TIM15_Init(void)
  670. {
  671.  
  672.   /* USER CODE BEGIN TIM15_Init 0 */
  673.  
  674.   /* USER CODE END TIM15_Init 0 */
  675.  
  676.   TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  677.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  678.   TIM_OC_InitTypeDef sConfigOC = {0};
  679.   TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
  680.  
  681.   /* USER CODE BEGIN TIM15_Init 1 */
  682.  
  683.   /* USER CODE END TIM15_Init 1 */
  684.   htim15.Instance = TIM15;
  685.   htim15.Init.Prescaler = 0;
  686.   htim15.Init.CounterMode = TIM_COUNTERMODE_UP;
  687.   htim15.Init.Period = 65535;
  688.   htim15.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  689.   htim15.Init.RepetitionCounter = 0;
  690.   htim15.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  691.   if (HAL_TIM_Base_Init(&htim15) != HAL_OK)
  692.   {
  693.     Error_Handler();
  694.   }
  695.   sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
  696.   if (HAL_TIM_ConfigClockSource(&htim15, &sClockSourceConfig) != HAL_OK)
  697.   {
  698.     Error_Handler();
  699.   }
  700.   if (HAL_TIM_PWM_Init(&htim15) != HAL_OK)
  701.   {
  702.     Error_Handler();
  703.   }
  704.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  705.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  706.   if (HAL_TIMEx_MasterConfigSynchronization(&htim15, &sMasterConfig) != HAL_OK)
  707.   {
  708.     Error_Handler();
  709.   }
  710.   sConfigOC.OCMode = TIM_OCMODE_PWM1;
  711.   sConfigOC.Pulse = 0;
  712.   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  713.   sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
  714.   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  715.   sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
  716.   sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
  717.   if (HAL_TIM_PWM_ConfigChannel(&htim15, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  718.   {
  719.     Error_Handler();
  720.   }
  721.   sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
  722.   sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
  723.   sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
  724.   sBreakDeadTimeConfig.DeadTime = 0;
  725.   sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
  726.   sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
  727.   sBreakDeadTimeConfig.BreakFilter = 0;
  728.   sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
  729.   if (HAL_TIMEx_ConfigBreakDeadTime(&htim15, &sBreakDeadTimeConfig) != HAL_OK)
  730.   {
  731.     Error_Handler();
  732.   }
  733.   /* USER CODE BEGIN TIM15_Init 2 */
  734.  
  735.   /* USER CODE END TIM15_Init 2 */
  736.   HAL_TIM_MspPostInit(&htim15);
  737.  
  738. }
  739.  
  740. /**
  741.   * @brief TIM16 Initialization Function
  742.   * @param None
  743.   * @retval None
  744.   */
  745. static void MX_TIM16_Init(void)
  746. {
  747.  
  748.   /* USER CODE BEGIN TIM16_Init 0 */
  749.  
  750.   /* USER CODE END TIM16_Init 0 */
  751.  
  752.   TIM_OC_InitTypeDef sConfigOC = {0};
  753.   TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
  754.  
  755.   /* USER CODE BEGIN TIM16_Init 1 */
  756.  
  757.   /* USER CODE END TIM16_Init 1 */
  758.   htim16.Instance = TIM16;
  759.   htim16.Init.Prescaler = 0;
  760.   htim16.Init.CounterMode = TIM_COUNTERMODE_UP;
  761.   htim16.Init.Period = 65535;
  762.   htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  763.   htim16.Init.RepetitionCounter = 0;
  764.   htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  765.   if (HAL_TIM_Base_Init(&htim16) != HAL_OK)
  766.   {
  767.     Error_Handler();
  768.   }
  769.   if (HAL_TIM_PWM_Init(&htim16) != HAL_OK)
  770.   {
  771.     Error_Handler();
  772.   }
  773.   sConfigOC.OCMode = TIM_OCMODE_PWM1;
  774.   sConfigOC.Pulse = 0;
  775.   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  776.   sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
  777.   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  778.   sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
  779.   sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
  780.   if (HAL_TIM_PWM_ConfigChannel(&htim16, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  781.   {
  782.     Error_Handler();
  783.   }
  784.   sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
  785.   sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
  786.   sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
  787.   sBreakDeadTimeConfig.DeadTime = 0;
  788.   sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
  789.   sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
  790.   sBreakDeadTimeConfig.BreakFilter = 0;
  791.   sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
  792.   if (HAL_TIMEx_ConfigBreakDeadTime(&htim16, &sBreakDeadTimeConfig) != HAL_OK)
  793.   {
  794.     Error_Handler();
  795.   }
  796.   /* USER CODE BEGIN TIM16_Init 2 */
  797.  
  798.   /* USER CODE END TIM16_Init 2 */
  799.   HAL_TIM_MspPostInit(&htim16);
  800.  
  801. }
  802.  
  803. /**
  804.   * @brief TIM17 Initialization Function
  805.   * @param None
  806.   * @retval None
  807.   */
  808. static void MX_TIM17_Init(void)
  809. {
  810.  
  811.   /* USER CODE BEGIN TIM17_Init 0 */
  812.  
  813.   /* USER CODE END TIM17_Init 0 */
  814.  
  815.   TIM_OC_InitTypeDef sConfigOC = {0};
  816.   TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
  817.  
  818.   /* USER CODE BEGIN TIM17_Init 1 */
  819.  
  820.   /* USER CODE END TIM17_Init 1 */
  821.   htim17.Instance = TIM17;
  822.   htim17.Init.Prescaler = 0;
  823.   htim17.Init.CounterMode = TIM_COUNTERMODE_UP;
  824.   htim17.Init.Period = 65535;
  825.   htim17.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  826.   htim17.Init.RepetitionCounter = 0;
  827.   htim17.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  828.   if (HAL_TIM_Base_Init(&htim17) != HAL_OK)
  829.   {
  830.     Error_Handler();
  831.   }
  832.   if (HAL_TIM_PWM_Init(&htim17) != HAL_OK)
  833.   {
  834.     Error_Handler();
  835.   }
  836.   sConfigOC.OCMode = TIM_OCMODE_PWM1;
  837.   sConfigOC.Pulse = 0;
  838.   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  839.   sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
  840.   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  841.   sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
  842.   sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
  843.   if (HAL_TIM_PWM_ConfigChannel(&htim17, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
  844.   {
  845.     Error_Handler();
  846.   }
  847.   sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
  848.   sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
  849.   sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
  850.   sBreakDeadTimeConfig.DeadTime = 0;
  851.   sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
  852.   sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
  853.   sBreakDeadTimeConfig.BreakFilter = 0;
  854.   sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
  855.   if (HAL_TIMEx_ConfigBreakDeadTime(&htim17, &sBreakDeadTimeConfig) != HAL_OK)
  856.   {
  857.     Error_Handler();
  858.   }
  859.   /* USER CODE BEGIN TIM17_Init 2 */
  860.  
  861.   /* USER CODE END TIM17_Init 2 */
  862.   HAL_TIM_MspPostInit(&htim17);
  863.  
  864. }
  865.  
  866. /**
  867.   * @brief UART5 Initialization Function
  868.   * @param None
  869.   * @retval None
  870.   */
  871. static void MX_UART5_Init(void)
  872. {
  873.  
  874.   /* USER CODE BEGIN UART5_Init 0 */
  875.  
  876.   /* USER CODE END UART5_Init 0 */
  877.  
  878.   /* USER CODE BEGIN UART5_Init 1 */
  879.  
  880.   /* USER CODE END UART5_Init 1 */
  881.   huart5.Instance = UART5;
  882.   huart5.Init.BaudRate = 115200;
  883.   huart5.Init.WordLength = UART_WORDLENGTH_8B;
  884.   huart5.Init.StopBits = UART_STOPBITS_1;
  885.   huart5.Init.Parity = UART_PARITY_NONE;
  886.   huart5.Init.Mode = UART_MODE_TX_RX;
  887.   huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  888.   huart5.Init.OverSampling = UART_OVERSAMPLING_16;
  889.   huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  890.   huart5.Init.ClockPrescaler = UART_PRESCALER_DIV1;
  891.   huart5.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  892.   if (HAL_UART_Init(&huart5) != HAL_OK)
  893.   {
  894.     Error_Handler();
  895.   }
  896.   if (HAL_UARTEx_SetTxFifoThreshold(&huart5, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
  897.   {
  898.     Error_Handler();
  899.   }
  900.   if (HAL_UARTEx_SetRxFifoThreshold(&huart5, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
  901.   {
  902.     Error_Handler();
  903.   }
  904.   if (HAL_UARTEx_DisableFifoMode(&huart5) != HAL_OK)
  905.   {
  906.     Error_Handler();
  907.   }
  908.   /* USER CODE BEGIN UART5_Init 2 */
  909.  
  910.   /* USER CODE END UART5_Init 2 */
  911.  
  912. }
  913.  
  914. /**
  915.   * @brief USART3 Initialization Function
  916.   * @param None
  917.   * @retval None
  918.   */
  919. static void MX_USART3_UART_Init(void)
  920. {
  921.  
  922.   /* USER CODE BEGIN USART3_Init 0 */
  923.  
  924.   /* USER CODE END USART3_Init 0 */
  925.  
  926.   /* USER CODE BEGIN USART3_Init 1 */
  927.  
  928.   /* USER CODE END USART3_Init 1 */
  929.   huart3.Instance = USART3;
  930.   huart3.Init.BaudRate = 115200;
  931.   huart3.Init.WordLength = UART_WORDLENGTH_8B;
  932.   huart3.Init.StopBits = UART_STOPBITS_1;
  933.   huart3.Init.Parity = UART_PARITY_NONE;
  934.   huart3.Init.Mode = UART_MODE_TX_RX;
  935.   huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  936.   huart3.Init.OverSampling = UART_OVERSAMPLING_16;
  937.   huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  938.   huart3.Init.ClockPrescaler = UART_PRESCALER_DIV1;
  939.   huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  940.   if (HAL_UART_Init(&huart3) != HAL_OK)
  941.   {
  942.     Error_Handler();
  943.   }
  944.   if (HAL_UARTEx_SetTxFifoThreshold(&huart3, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
  945.   {
  946.     Error_Handler();
  947.   }
  948.   if (HAL_UARTEx_SetRxFifoThreshold(&huart3, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
  949.   {
  950.     Error_Handler();
  951.   }
  952.   if (HAL_UARTEx_DisableFifoMode(&huart3) != HAL_OK)
  953.   {
  954.     Error_Handler();
  955.   }
  956.   /* USER CODE BEGIN USART3_Init 2 */
  957.  
  958.   /* USER CODE END USART3_Init 2 */
  959.  
  960. }
  961.  
  962. /**
  963.   * Enable DMA controller clock
  964.   */
  965. static void MX_DMA_Init(void)
  966. {
  967.  
  968.   /* DMA controller clock enable */
  969.   __HAL_RCC_DMA1_CLK_ENABLE();
  970.  
  971.   /* DMA interrupt init */
  972.   /* DMA1_Stream0_IRQn interrupt configuration */
  973.   HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);
  974.   HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
  975.  
  976. }
  977.  
  978. /**
  979.   * @brief GPIO Initialization Function
  980.   * @param None
  981.   * @retval None
  982.   */
  983. static void MX_GPIO_Init(void)
  984. {
  985.   GPIO_InitTypeDef GPIO_InitStruct = {0};
  986.  
  987.   /* GPIO Ports Clock Enable */
  988.   __HAL_RCC_GPIOE_CLK_ENABLE();
  989.   __HAL_RCC_GPIOC_CLK_ENABLE();
  990.   __HAL_RCC_GPIOF_CLK_ENABLE();
  991.   __HAL_RCC_GPIOH_CLK_ENABLE();
  992.   __HAL_RCC_GPIOA_CLK_ENABLE();
  993.   __HAL_RCC_GPIOB_CLK_ENABLE();
  994.   __HAL_RCC_GPIOD_CLK_ENABLE();
  995.  
  996.   /*Configure GPIO pin Output Level */
  997.   HAL_GPIO_WritePin(GPIOB, LD_WRK_Pin|LD_ERR_Pin, GPIO_PIN_RESET);
  998.  
  999.   /*Configure GPIO pin Output Level */
  1000.   HAL_GPIO_WritePin(LD_IDL_GPIO_Port, LD_IDL_Pin, GPIO_PIN_RESET);
  1001.  
  1002.   /*Configure GPIO pin : B1_Pin */
  1003.   GPIO_InitStruct.Pin = B1_Pin;
  1004.   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  1005.   GPIO_InitStruct.Pull = GPIO_NOPULL;
  1006.   HAL_GPIO_Init(B1_GPIO_Port, &GPIO_InitStruct);
  1007.  
  1008.   /*Configure GPIO pins : LD_WRK_Pin LD_ERR_Pin */
  1009.   GPIO_InitStruct.Pin = LD_WRK_Pin|LD_ERR_Pin;
  1010.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  1011.   GPIO_InitStruct.Pull = GPIO_NOPULL;
  1012.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  1013.   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  1014.  
  1015.   /*Configure GPIO pin : LD_IDL_Pin */
  1016.   GPIO_InitStruct.Pin = LD_IDL_Pin;
  1017.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  1018.   GPIO_InitStruct.Pull = GPIO_NOPULL;
  1019.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  1020.   HAL_GPIO_Init(LD_IDL_GPIO_Port, &GPIO_InitStruct);
  1021.  
  1022. }
  1023.  
  1024. /* USER CODE BEGIN 4 */
  1025.  
  1026. /* USER CODE END 4 */
  1027.  
  1028. /**
  1029.   * @brief  This function is executed in case of error occurrence.
  1030.   * @retval None
  1031.   */
  1032. void Error_Handler(void)
  1033. {
  1034.   /* USER CODE BEGIN Error_Handler_Debug */
  1035.   /* User can add his own implementation to report the HAL error return state */
  1036.   __disable_irq();
  1037.   while (1)
  1038.   {
  1039.   }
  1040.   /* USER CODE END Error_Handler_Debug */
  1041. }
  1042.  
  1043. #ifdef  USE_FULL_ASSERT
  1044. /**
  1045.   * @brief  Reports the name of the source file and the source line number
  1046.   *         where the assert_param error has occurred.
  1047.   * @param  file: pointer to the source file name
  1048.   * @param  line: assert_param error line source number
  1049.   * @retval None
  1050.   */
  1051. void assert_failed(uint8_t *file, uint32_t line)
  1052. {
  1053.   /* USER CODE BEGIN 6 */
  1054.   /* User can add his own implementation to report the file name and line number,
  1055.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  1056.   /* USER CODE END 6 */
  1057. }
  1058. #endif /* USE_FULL_ASSERT */
  1059.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement