static void MX_TIM5_Init(void);\r
static void MX_USART6_UART_Init(void);\r
static void MX_TIM6_Init(void);\r
+static void MX_NVIC_Init(void);\r
/* USER CODE BEGIN PFP */\r
\r
/* USER CODE END PFP */\r
/* USER CODE END 0 */\r
\r
/**\r
- * @brief The application entry point.\r
- * @retval int\r
- */\r
-int main(void) {\r
- /* USER CODE BEGIN 1 */\r
+ * @brief The application entry point.\r
+ * @retval int\r
+ */\r
+int main(void)\r
+{\r
+ /* USER CODE BEGIN 1 */\r
+\r
+ /* USER CODE END 1 */\r
+ \r
\r
- /* USER CODE END 1 */\r
+ /* MCU Configuration--------------------------------------------------------*/\r
\r
- /* MCU Configuration--------------------------------------------------------*/\r
+ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */\r
+ HAL_Init();\r
\r
- /* Reset of all peripherals, Initializes the Flash interface and the Systick. */\r
- HAL_Init();\r
+ /* USER CODE BEGIN Init */\r
\r
- /* USER CODE BEGIN Init */\r
+ /* USER CODE END Init */\r
\r
- /* USER CODE END Init */\r
+ /* Configure the system clock */\r
+ SystemClock_Config();\r
\r
- /* Configure the system clock */\r
- SystemClock_Config();\r
+ /* USER CODE BEGIN SysInit */\r
\r
- /* USER CODE BEGIN SysInit */\r
+ /* USER CODE END SysInit */\r
\r
- /* USER CODE END SysInit */\r
+ /* Initialize all configured peripherals */\r
+ MX_GPIO_Init();\r
+ MX_DMA_Init();\r
+ MX_TIM2_Init();\r
+ MX_TIM3_Init();\r
+ MX_TIM4_Init();\r
+ MX_TIM5_Init();\r
+ MX_USART6_UART_Init();\r
+ MX_TIM6_Init();\r
\r
- /* Initialize all configured peripherals */\r
- MX_GPIO_Init();\r
- MX_DMA_Init();\r
- MX_TIM2_Init();\r
- MX_TIM3_Init();\r
- MX_TIM4_Init();\r
- MX_TIM5_Init();\r
- MX_USART6_UART_Init();\r
- MX_TIM6_Init();\r
- /* USER CODE BEGIN 2 */\r
+ /* Initialize interrupts */\r
+ MX_NVIC_Init();\r
+ /* USER CODE BEGIN 2 */\r
\r
left_encoder.Setup();\r
right_encoder.Setup();\r
\r
HAL_TIM_Base_Start_IT(&htim3);\r
\r
- /* USER CODE END 2 */\r
+ /* USER CODE END 2 */\r
\r
- /* Infinite loop */\r
- /* USER CODE BEGIN WHILE */\r
+ /* Infinite loop */\r
+ /* USER CODE BEGIN WHILE */\r
while (1) {\r
- /* USER CODE END WHILE */\r
+ /* USER CODE END WHILE */\r
\r
- /* USER CODE BEGIN 3 */\r
+ /* USER CODE BEGIN 3 */\r
}\r
- /* USER CODE END 3 */\r
+ /* USER CODE END 3 */\r
}\r
\r
/**\r
- * @brief System Clock Configuration\r
- * @retval None\r
- */\r
-void SystemClock_Config(void) {\r
- RCC_OscInitTypeDef RCC_OscInitStruct = { 0 };\r
- RCC_ClkInitTypeDef RCC_ClkInitStruct = { 0 };\r
- RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = { 0 };\r
-\r
- /** Configure the main internal regulator output voltage\r
- */\r
- __HAL_RCC_PWR_CLK_ENABLE();\r
- __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);\r
- /** Initializes the CPU, AHB and APB busses clocks\r
- */\r
- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;\r
- RCC_OscInitStruct.HSIState = RCC_HSI_ON;\r
- RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;\r
- RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;\r
- if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- /** Initializes the CPU, AHB and APB busses clocks\r
- */\r
- RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK\r
- | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;\r
- RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;\r
- RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;\r
- RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;\r
- RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;\r
-\r
- if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART6;\r
- PeriphClkInitStruct.Usart6ClockSelection = RCC_USART6CLKSOURCE_PCLK2;\r
- if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {\r
- Error_Handler();\r
- }\r
+ * @brief System Clock Configuration\r
+ * @retval None\r
+ */\r
+void SystemClock_Config(void)\r
+{\r
+ RCC_OscInitTypeDef RCC_OscInitStruct = {0};\r
+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};\r
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};\r
+\r
+ /** Configure the main internal regulator output voltage \r
+ */\r
+ __HAL_RCC_PWR_CLK_ENABLE();\r
+ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);\r
+ /** Initializes the CPU, AHB and APB busses clocks \r
+ */\r
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;\r
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;\r
+ RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;\r
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;\r
+ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ /** Initializes the CPU, AHB and APB busses clocks \r
+ */\r
+ RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK\r
+ |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;\r
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;\r
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;\r
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;\r
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;\r
+\r
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART6;\r
+ PeriphClkInitStruct.Usart6ClockSelection = RCC_USART6CLKSOURCE_PCLK2;\r
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
}\r
\r
/**\r
- * @brief TIM2 Initialization Function\r
- * @param None\r
- * @retval None\r
- */\r
-static void MX_TIM2_Init(void) {\r
-\r
- /* USER CODE BEGIN TIM2_Init 0 */\r
-\r
- /* USER CODE END TIM2_Init 0 */\r
-\r
- TIM_Encoder_InitTypeDef sConfig = { 0 };\r
- TIM_MasterConfigTypeDef sMasterConfig = { 0 };\r
-\r
- /* USER CODE BEGIN TIM2_Init 1 */\r
-\r
- /* USER CODE END TIM2_Init 1 */\r
- htim2.Instance = TIM2;\r
- htim2.Init.Prescaler = 0;\r
- htim2.Init.CounterMode = TIM_COUNTERMODE_UP;\r
- htim2.Init.Period = 4294967295;\r
- htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;\r
- htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
- sConfig.EncoderMode = TIM_ENCODERMODE_TI12;\r
- sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;\r
- sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;\r
- sConfig.IC1Prescaler = TIM_ICPSC_DIV1;\r
- sConfig.IC1Filter = 0;\r
- sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;\r
- sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;\r
- sConfig.IC2Prescaler = TIM_ICPSC_DIV1;\r
- sConfig.IC2Filter = 0;\r
- if (HAL_TIM_Encoder_Init(&htim2, &sConfig) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
- if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig)\r
- != HAL_OK) {\r
- Error_Handler();\r
- }\r
- /* USER CODE BEGIN TIM2_Init 2 */\r
-\r
- /* USER CODE END TIM2_Init 2 */\r
-\r
+ * @brief NVIC Configuration.\r
+ * @retval None\r
+ */\r
+static void MX_NVIC_Init(void)\r
+{\r
+ /* TIM3_IRQn interrupt configuration */\r
+ HAL_NVIC_SetPriority(TIM3_IRQn, 2, 1);\r
+ HAL_NVIC_EnableIRQ(TIM3_IRQn);\r
+ /* TIM6_DAC_IRQn interrupt configuration */\r
+ HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 2, 2);\r
+ HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);\r
+ /* DMA2_Stream1_IRQn interrupt configuration */\r
+ HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 2, 0);\r
+ HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);\r
+ /* DMA2_Stream6_IRQn interrupt configuration */\r
+ HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 2, 0);\r
+ HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn);\r
+ /* USART6_IRQn interrupt configuration */\r
+ HAL_NVIC_SetPriority(USART6_IRQn, 2, 0);\r
+ HAL_NVIC_EnableIRQ(USART6_IRQn);\r
}\r
\r
/**\r
- * @brief TIM3 Initialization Function\r
- * @param None\r
- * @retval None\r
- */\r
-static void MX_TIM3_Init(void) {\r
-\r
- /* USER CODE BEGIN TIM3_Init 0 */\r
-\r
- /* USER CODE END TIM3_Init 0 */\r
-\r
- TIM_ClockConfigTypeDef sClockSourceConfig = { 0 };\r
- TIM_MasterConfigTypeDef sMasterConfig = { 0 };\r
-\r
- /* USER CODE BEGIN TIM3_Init 1 */\r
-\r
- /* USER CODE END TIM3_Init 1 */\r
- htim3.Instance = TIM3;\r
- htim3.Init.Prescaler = 9999;\r
- htim3.Init.CounterMode = TIM_COUNTERMODE_UP;\r
- htim3.Init.Period = 159;\r
- htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;\r
- htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
- if (HAL_TIM_Base_Init(&htim3) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;\r
- if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
- if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig)\r
- != HAL_OK) {\r
- Error_Handler();\r
- }\r
- /* USER CODE BEGIN TIM3_Init 2 */\r
-\r
- /* USER CODE END TIM3_Init 2 */\r
+ * @brief TIM2 Initialization Function\r
+ * @param None\r
+ * @retval None\r
+ */\r
+static void MX_TIM2_Init(void)\r
+{\r
+\r
+ /* USER CODE BEGIN TIM2_Init 0 */\r
+\r
+ /* USER CODE END TIM2_Init 0 */\r
+\r
+ TIM_Encoder_InitTypeDef sConfig = {0};\r
+ TIM_MasterConfigTypeDef sMasterConfig = {0};\r
+\r
+ /* USER CODE BEGIN TIM2_Init 1 */\r
+\r
+ /* USER CODE END TIM2_Init 1 */\r
+ htim2.Instance = TIM2;\r
+ htim2.Init.Prescaler = 0;\r
+ htim2.Init.CounterMode = TIM_COUNTERMODE_UP;\r
+ htim2.Init.Period = 4294967295;\r
+ htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;\r
+ htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
+ sConfig.EncoderMode = TIM_ENCODERMODE_TI12;\r
+ sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;\r
+ sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;\r
+ sConfig.IC1Prescaler = TIM_ICPSC_DIV1;\r
+ sConfig.IC1Filter = 0;\r
+ sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;\r
+ sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;\r
+ sConfig.IC2Prescaler = TIM_ICPSC_DIV1;\r
+ sConfig.IC2Filter = 0;\r
+ if (HAL_TIM_Encoder_Init(&htim2, &sConfig) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ /* USER CODE BEGIN TIM2_Init 2 */\r
+\r
+ /* USER CODE END TIM2_Init 2 */\r
\r
}\r
\r
/**\r
- * @brief TIM4 Initialization Function\r
- * @param None\r
- * @retval None\r
- */\r
-static void MX_TIM4_Init(void) {\r
-\r
- /* USER CODE BEGIN TIM4_Init 0 */\r
-\r
- /* USER CODE END TIM4_Init 0 */\r
-\r
- TIM_ClockConfigTypeDef sClockSourceConfig = { 0 };\r
- TIM_MasterConfigTypeDef sMasterConfig = { 0 };\r
- TIM_OC_InitTypeDef sConfigOC = { 0 };\r
-\r
- /* USER CODE BEGIN TIM4_Init 1 */\r
+ * @brief TIM3 Initialization Function\r
+ * @param None\r
+ * @retval None\r
+ */\r
+static void MX_TIM3_Init(void)\r
+{\r
+\r
+ /* USER CODE BEGIN TIM3_Init 0 */\r
+\r
+ /* USER CODE END TIM3_Init 0 */\r
+\r
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};\r
+ TIM_MasterConfigTypeDef sMasterConfig = {0};\r
+\r
+ /* USER CODE BEGIN TIM3_Init 1 */\r
+\r
+ /* USER CODE END TIM3_Init 1 */\r
+ htim3.Instance = TIM3;\r
+ htim3.Init.Prescaler = 9999;\r
+ htim3.Init.CounterMode = TIM_COUNTERMODE_UP;\r
+ htim3.Init.Period = 159;\r
+ htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;\r
+ htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
+ if (HAL_TIM_Base_Init(&htim3) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;\r
+ if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ /* USER CODE BEGIN TIM3_Init 2 */\r
+\r
+ /* USER CODE END TIM3_Init 2 */\r
\r
- /* USER CODE END TIM4_Init 1 */\r
- htim4.Instance = TIM4;\r
- htim4.Init.Prescaler = 0;\r
- htim4.Init.CounterMode = TIM_COUNTERMODE_UP;\r
- htim4.Init.Period = 799;\r
- htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;\r
- htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
- if (HAL_TIM_Base_Init(&htim4) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;\r
- if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- if (HAL_TIM_PWM_Init(&htim4) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
- if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig)\r
- != HAL_OK) {\r
- Error_Handler();\r
- }\r
- sConfigOC.OCMode = TIM_OCMODE_PWM1;\r
- sConfigOC.Pulse = 0;\r
- sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;\r
- sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;\r
- if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3)\r
- != HAL_OK) {\r
- Error_Handler();\r
- }\r
- if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_4)\r
- != HAL_OK) {\r
- Error_Handler();\r
- }\r
- /* USER CODE BEGIN TIM4_Init 2 */\r
+}\r
\r
- /* USER CODE END TIM4_Init 2 */\r
- HAL_TIM_MspPostInit(&htim4);\r
+/**\r
+ * @brief TIM4 Initialization Function\r
+ * @param None\r
+ * @retval None\r
+ */\r
+static void MX_TIM4_Init(void)\r
+{\r
+\r
+ /* USER CODE BEGIN TIM4_Init 0 */\r
+\r
+ /* USER CODE END TIM4_Init 0 */\r
+\r
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};\r
+ TIM_MasterConfigTypeDef sMasterConfig = {0};\r
+ TIM_OC_InitTypeDef sConfigOC = {0};\r
+\r
+ /* USER CODE BEGIN TIM4_Init 1 */\r
+\r
+ /* USER CODE END TIM4_Init 1 */\r
+ htim4.Instance = TIM4;\r
+ htim4.Init.Prescaler = 0;\r
+ htim4.Init.CounterMode = TIM_COUNTERMODE_UP;\r
+ htim4.Init.Period = 799;\r
+ htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;\r
+ htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
+ if (HAL_TIM_Base_Init(&htim4) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;\r
+ if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ if (HAL_TIM_PWM_Init(&htim4) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ sConfigOC.OCMode = TIM_OCMODE_PWM1;\r
+ sConfigOC.Pulse = 0;\r
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;\r
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;\r
+ if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ /* USER CODE BEGIN TIM4_Init 2 */\r
+\r
+ /* USER CODE END TIM4_Init 2 */\r
+ HAL_TIM_MspPostInit(&htim4);\r
\r
}\r
\r
/**\r
- * @brief TIM5 Initialization Function\r
- * @param None\r
- * @retval None\r
- */\r
-static void MX_TIM5_Init(void) {\r
-\r
- /* USER CODE BEGIN TIM5_Init 0 */\r
-\r
- /* USER CODE END TIM5_Init 0 */\r
-\r
- TIM_Encoder_InitTypeDef sConfig = { 0 };\r
- TIM_MasterConfigTypeDef sMasterConfig = { 0 };\r
-\r
- /* USER CODE BEGIN TIM5_Init 1 */\r
-\r
- /* USER CODE END TIM5_Init 1 */\r
- htim5.Instance = TIM5;\r
- htim5.Init.Prescaler = 0;\r
- htim5.Init.CounterMode = TIM_COUNTERMODE_UP;\r
- htim5.Init.Period = 4294967295;\r
- htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;\r
- htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
- sConfig.EncoderMode = TIM_ENCODERMODE_TI12;\r
- sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;\r
- sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;\r
- sConfig.IC1Prescaler = TIM_ICPSC_DIV1;\r
- sConfig.IC1Filter = 0;\r
- sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;\r
- sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;\r
- sConfig.IC2Prescaler = TIM_ICPSC_DIV1;\r
- sConfig.IC2Filter = 0;\r
- if (HAL_TIM_Encoder_Init(&htim5, &sConfig) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
- if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig)\r
- != HAL_OK) {\r
- Error_Handler();\r
- }\r
- /* USER CODE BEGIN TIM5_Init 2 */\r
-\r
- /* USER CODE END TIM5_Init 2 */\r
+ * @brief TIM5 Initialization Function\r
+ * @param None\r
+ * @retval None\r
+ */\r
+static void MX_TIM5_Init(void)\r
+{\r
+\r
+ /* USER CODE BEGIN TIM5_Init 0 */\r
+\r
+ /* USER CODE END TIM5_Init 0 */\r
+\r
+ TIM_Encoder_InitTypeDef sConfig = {0};\r
+ TIM_MasterConfigTypeDef sMasterConfig = {0};\r
+\r
+ /* USER CODE BEGIN TIM5_Init 1 */\r
+\r
+ /* USER CODE END TIM5_Init 1 */\r
+ htim5.Instance = TIM5;\r
+ htim5.Init.Prescaler = 0;\r
+ htim5.Init.CounterMode = TIM_COUNTERMODE_UP;\r
+ htim5.Init.Period = 4294967295;\r
+ htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;\r
+ htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
+ sConfig.EncoderMode = TIM_ENCODERMODE_TI12;\r
+ sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;\r
+ sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;\r
+ sConfig.IC1Prescaler = TIM_ICPSC_DIV1;\r
+ sConfig.IC1Filter = 0;\r
+ sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;\r
+ sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;\r
+ sConfig.IC2Prescaler = TIM_ICPSC_DIV1;\r
+ sConfig.IC2Filter = 0;\r
+ if (HAL_TIM_Encoder_Init(&htim5, &sConfig) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ /* USER CODE BEGIN TIM5_Init 2 */\r
+\r
+ /* USER CODE END TIM5_Init 2 */\r
\r
}\r
\r
/**\r
- * @brief TIM6 Initialization Function\r
- * @param None\r
- * @retval None\r
- */\r
-static void MX_TIM6_Init(void) {\r
+ * @brief TIM6 Initialization Function\r
+ * @param None\r
+ * @retval None\r
+ */\r
+static void MX_TIM6_Init(void)\r
+{\r
\r
- /* USER CODE BEGIN TIM6_Init 0 */\r
+ /* USER CODE BEGIN TIM6_Init 0 */\r
\r
- /* USER CODE END TIM6_Init 0 */\r
+ /* USER CODE END TIM6_Init 0 */\r
\r
- TIM_MasterConfigTypeDef sMasterConfig = { 0 };\r
+ TIM_MasterConfigTypeDef sMasterConfig = {0};\r
\r
- /* USER CODE BEGIN TIM6_Init 1 */\r
+ /* USER CODE BEGIN TIM6_Init 1 */\r
\r
- /* USER CODE END TIM6_Init 1 */\r
- htim6.Instance = TIM6;\r
- htim6.Init.Prescaler = 9999;\r
- htim6.Init.CounterMode = TIM_COUNTERMODE_UP;\r
- htim6.Init.Period = 799;\r
- htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
- if (HAL_TIM_Base_Init(&htim6) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
- if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig)\r
- != HAL_OK) {\r
- Error_Handler();\r
- }\r
- /* USER CODE BEGIN TIM6_Init 2 */\r
+ /* USER CODE END TIM6_Init 1 */\r
+ htim6.Instance = TIM6;\r
+ htim6.Init.Prescaler = 9999;\r
+ htim6.Init.CounterMode = TIM_COUNTERMODE_UP;\r
+ htim6.Init.Period = 799;\r
+ htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;\r
+ if (HAL_TIM_Base_Init(&htim6) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;\r
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;\r
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ /* USER CODE BEGIN TIM6_Init 2 */\r
\r
- /* USER CODE END TIM6_Init 2 */\r
+ /* USER CODE END TIM6_Init 2 */\r
\r
}\r
\r
/**\r
- * @brief USART6 Initialization Function\r
- * @param None\r
- * @retval None\r
- */\r
-static void MX_USART6_UART_Init(void) {\r
-\r
- /* USER CODE BEGIN USART6_Init 0 */\r
-\r
- /* USER CODE END USART6_Init 0 */\r
-\r
- /* USER CODE BEGIN USART6_Init 1 */\r
-\r
- /* USER CODE END USART6_Init 1 */\r
- huart6.Instance = USART6;\r
- huart6.Init.BaudRate = 115200;\r
- huart6.Init.WordLength = UART_WORDLENGTH_8B;\r
- huart6.Init.StopBits = UART_STOPBITS_1;\r
- huart6.Init.Parity = UART_PARITY_NONE;\r
- huart6.Init.Mode = UART_MODE_TX_RX;\r
- huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;\r
- huart6.Init.OverSampling = UART_OVERSAMPLING_16;\r
- huart6.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;\r
- huart6.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;\r
- if (HAL_UART_Init(&huart6) != HAL_OK) {\r
- Error_Handler();\r
- }\r
- /* USER CODE BEGIN USART6_Init 2 */\r
-\r
- /* USER CODE END USART6_Init 2 */\r
+ * @brief USART6 Initialization Function\r
+ * @param None\r
+ * @retval None\r
+ */\r
+static void MX_USART6_UART_Init(void)\r
+{\r
+\r
+ /* USER CODE BEGIN USART6_Init 0 */\r
+\r
+ /* USER CODE END USART6_Init 0 */\r
+\r
+ /* USER CODE BEGIN USART6_Init 1 */\r
+\r
+ /* USER CODE END USART6_Init 1 */\r
+ huart6.Instance = USART6;\r
+ huart6.Init.BaudRate = 115200;\r
+ huart6.Init.WordLength = UART_WORDLENGTH_8B;\r
+ huart6.Init.StopBits = UART_STOPBITS_1;\r
+ huart6.Init.Parity = UART_PARITY_NONE;\r
+ huart6.Init.Mode = UART_MODE_TX_RX;\r
+ huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;\r
+ huart6.Init.OverSampling = UART_OVERSAMPLING_16;\r
+ huart6.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;\r
+ huart6.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;\r
+ if (HAL_UART_Init(&huart6) != HAL_OK)\r
+ {\r
+ Error_Handler();\r
+ }\r
+ /* USER CODE BEGIN USART6_Init 2 */\r
+\r
+ /* USER CODE END USART6_Init 2 */\r
\r
}\r
\r
/** \r
- * Enable DMA controller clock\r
- */\r
-static void MX_DMA_Init(void) {\r
-\r
- /* DMA controller clock enable */\r
- __HAL_RCC_DMA2_CLK_ENABLE();\r
+ * Enable DMA controller clock\r
+ */\r
+static void MX_DMA_Init(void) \r
+{\r
\r
- /* DMA interrupt init */\r
- /* DMA2_Stream1_IRQn interrupt configuration */\r
- HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 2, 0);\r
- HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);\r
- /* DMA2_Stream6_IRQn interrupt configuration */\r
- HAL_NVIC_SetPriority(DMA2_Stream6_IRQn, 2, 0);\r
- HAL_NVIC_EnableIRQ(DMA2_Stream6_IRQn);\r
+ /* DMA controller clock enable */\r
+ __HAL_RCC_DMA2_CLK_ENABLE();\r
\r
}\r
\r
/**\r
- * @brief GPIO Initialization Function\r
- * @param None\r
- * @retval None\r
- */\r
-static void MX_GPIO_Init(void) {\r
- GPIO_InitTypeDef GPIO_InitStruct = { 0 };\r
-\r
- /* GPIO Ports Clock Enable */\r
- __HAL_RCC_GPIOC_CLK_ENABLE();\r
- __HAL_RCC_GPIOA_CLK_ENABLE();\r
- __HAL_RCC_GPIOF_CLK_ENABLE();\r
- __HAL_RCC_GPIOE_CLK_ENABLE();\r
- __HAL_RCC_GPIOD_CLK_ENABLE();\r
- __HAL_RCC_GPIOB_CLK_ENABLE();\r
-\r
- /*Configure GPIO pin Output Level */\r
- HAL_GPIO_WritePin(GPIOF, dir2_Pin | dir1_Pin | sleep2_Pin | sleep1_Pin,\r
- GPIO_PIN_RESET);\r
-\r
- /*Configure GPIO pin : current2_Pin */\r
- GPIO_InitStruct.Pin = current2_Pin;\r
- GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;\r
- GPIO_InitStruct.Pull = GPIO_NOPULL;\r
- HAL_GPIO_Init(current2_GPIO_Port, &GPIO_InitStruct);\r
-\r
- /*Configure GPIO pin : current1_Pin */\r
- GPIO_InitStruct.Pin = current1_Pin;\r
- GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;\r
- GPIO_InitStruct.Pull = GPIO_NOPULL;\r
- HAL_GPIO_Init(current1_GPIO_Port, &GPIO_InitStruct);\r
-\r
- /*Configure GPIO pin : fault2_Pin */\r
- GPIO_InitStruct.Pin = fault2_Pin;\r
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;\r
- GPIO_InitStruct.Pull = GPIO_NOPULL;\r
- HAL_GPIO_Init(fault2_GPIO_Port, &GPIO_InitStruct);\r
-\r
- /*Configure GPIO pins : dir2_Pin dir1_Pin sleep2_Pin sleep1_Pin */\r
- GPIO_InitStruct.Pin = dir2_Pin | dir1_Pin | sleep2_Pin | sleep1_Pin;\r
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;\r
- GPIO_InitStruct.Pull = GPIO_NOPULL;\r
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;\r
- HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);\r
-\r
- /*Configure GPIO pin : fault1_Pin */\r
- GPIO_InitStruct.Pin = fault1_Pin;\r
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;\r
- GPIO_InitStruct.Pull = GPIO_NOPULL;\r
- HAL_GPIO_Init(fault1_GPIO_Port, &GPIO_InitStruct);\r
+ * @brief GPIO Initialization Function\r
+ * @param None\r
+ * @retval None\r
+ */\r
+static void MX_GPIO_Init(void)\r
+{\r
+ GPIO_InitTypeDef GPIO_InitStruct = {0};\r
+\r
+ /* GPIO Ports Clock Enable */\r
+ __HAL_RCC_GPIOC_CLK_ENABLE();\r
+ __HAL_RCC_GPIOA_CLK_ENABLE();\r
+ __HAL_RCC_GPIOF_CLK_ENABLE();\r
+ __HAL_RCC_GPIOE_CLK_ENABLE();\r
+ __HAL_RCC_GPIOD_CLK_ENABLE();\r
+ __HAL_RCC_GPIOB_CLK_ENABLE();\r
+\r
+ /*Configure GPIO pin Output Level */\r
+ HAL_GPIO_WritePin(GPIOF, dir2_Pin|dir1_Pin|sleep2_Pin|sleep1_Pin, GPIO_PIN_RESET);\r
+\r
+ /*Configure GPIO pin : current2_Pin */\r
+ GPIO_InitStruct.Pin = current2_Pin;\r
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;\r
+ GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+ HAL_GPIO_Init(current2_GPIO_Port, &GPIO_InitStruct);\r
+\r
+ /*Configure GPIO pin : current1_Pin */\r
+ GPIO_InitStruct.Pin = current1_Pin;\r
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;\r
+ GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+ HAL_GPIO_Init(current1_GPIO_Port, &GPIO_InitStruct);\r
+\r
+ /*Configure GPIO pin : fault2_Pin */\r
+ GPIO_InitStruct.Pin = fault2_Pin;\r
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;\r
+ GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+ HAL_GPIO_Init(fault2_GPIO_Port, &GPIO_InitStruct);\r
+\r
+ /*Configure GPIO pins : dir2_Pin dir1_Pin sleep2_Pin sleep1_Pin */\r
+ GPIO_InitStruct.Pin = dir2_Pin|dir1_Pin|sleep2_Pin|sleep1_Pin;\r
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;\r
+ GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;\r
+ HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);\r
+\r
+ /*Configure GPIO pin : fault1_Pin */\r
+ GPIO_InitStruct.Pin = fault1_Pin;\r
+ GPIO_InitStruct.Mode = GPIO_MODE_INPUT;\r
+ GPIO_InitStruct.Pull = GPIO_NOPULL;\r
+ HAL_GPIO_Init(fault1_GPIO_Port, &GPIO_InitStruct);\r
\r
}\r
\r
/* USER CODE END 4 */\r
\r
/**\r
- * @brief This function is executed in case of error occurrence.\r
- * @retval None\r
- */\r
-void Error_Handler(void) {\r
- /* USER CODE BEGIN Error_Handler_Debug */\r
+ * @brief This function is executed in case of error occurrence.\r
+ * @retval None\r
+ */\r
+void Error_Handler(void)\r
+{\r
+ /* USER CODE BEGIN Error_Handler_Debug */\r
/* User can add his own implementation to report the HAL error return state */\r
\r
- /* USER CODE END Error_Handler_Debug */\r
+ /* USER CODE END Error_Handler_Debug */\r
}\r
\r
#ifdef USE_FULL_ASSERT\r