Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* USER CODE END Header */
- /* Includes ------------------------------------------------------------------*/
- #include "main.h"
- #include "fatfs.h"
- #include "usb_device.h"
- /* Private includes ----------------------------------------------------------*/
- /* USER CODE BEGIN Includes */
- #include "STM32 PLC/Functions.h"
- /* USER CODE END Includes */
- /* Private typedef -----------------------------------------------------------*/
- /* USER CODE BEGIN PTD */
- /* USER CODE END PTD */
- /* Private define ------------------------------------------------------------*/
- /* USER CODE BEGIN PD */
- /* USER CODE END PD */
- /* Private macro -------------------------------------------------------------*/
- /* USER CODE BEGIN PM */
- /* USER CODE END PM */
- /* Private variables ---------------------------------------------------------*/
- CAN_HandleTypeDef hcan;
- DAC_HandleTypeDef hdac1;
- DAC_HandleTypeDef hdac2;
- RTC_HandleTypeDef hrtc;
- SDADC_HandleTypeDef hsdadc1;
- SDADC_HandleTypeDef hsdadc2;
- SDADC_HandleTypeDef hsdadc3;
- DMA_HandleTypeDef hdma_sdadc1;
- DMA_HandleTypeDef hdma_sdadc2;
- DMA_HandleTypeDef hdma_sdadc3;
- SPI_HandleTypeDef hspi1;
- SPI_HandleTypeDef hspi2;
- TIM_HandleTypeDef htim2;
- TIM_HandleTypeDef htim4;
- TIM_HandleTypeDef htim5;
- TIM_HandleTypeDef htim6;
- TIM_HandleTypeDef htim12;
- TIM_HandleTypeDef htim13;
- TIM_HandleTypeDef htim16;
- TIM_HandleTypeDef htim17;
- TIM_HandleTypeDef htim19;
- DMA_HandleTypeDef hdma_tim16_ch1_up;
- DMA_HandleTypeDef hdma_tim17_ch1_up;
- UART_HandleTypeDef huart1;
- /* USER CODE BEGIN PV */
- /* USER CODE END PV */
- /* Private function prototypes -----------------------------------------------*/
- void SystemClock_Config(void);
- static void MX_GPIO_Init(void);
- static void MX_DAC1_Init(void);
- static void MX_DAC2_Init(void);
- static void MX_RTC_Init(void);
- static void MX_SPI2_Init(void);
- static void MX_TIM2_Init(void);
- static void MX_TIM5_Init(void);
- static void MX_SPI1_Init(void);
- static void MX_TIM4_Init(void);
- static void MX_SDADC1_Init(void);
- static void MX_SDADC2_Init(void);
- static void MX_SDADC3_Init(void);
- static void MX_CAN_Init(void);
- static void MX_USART1_UART_Init(void);
- static void MX_TIM6_Init(void);
- static void MX_TIM12_Init(void);
- static void MX_TIM13_Init(void);
- static void MX_TIM16_Init(void);
- static void MX_TIM17_Init(void);
- static void MX_DMA_Init(void);
- static void MX_TIM19_Init(void);
- /* USER CODE BEGIN PFP */
- /* USER CODE END PFP */
- /* Private user code ---------------------------------------------------------*/
- /* USER CODE BEGIN 0 */
- /* USER CODE END 0 */
- /**
- * @brief The application entry point.
- * @retval int
- */
- int main(void)
- {
- /* USER CODE BEGIN 1 */
- /* USER CODE END 1 */
- /* MCU Configuration--------------------------------------------------------*/
- /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
- HAL_Init();
- /* USER CODE BEGIN Init */
- /* USER CODE END Init */
- /* Configure the system clock */
- SystemClock_Config();
- /* USER CODE BEGIN SysInit */
- /* USER CODE END SysInit */
- /* Initialize all configured peripherals */
- MX_GPIO_Init();
- MX_DAC1_Init();
- MX_DAC2_Init();
- MX_RTC_Init();
- MX_SPI2_Init();
- MX_TIM2_Init();
- MX_TIM5_Init();
- MX_SPI1_Init();
- MX_TIM4_Init();
- MX_SDADC1_Init();
- MX_SDADC2_Init();
- MX_SDADC3_Init();
- MX_CAN_Init();
- MX_USART1_UART_Init();
- MX_TIM6_Init();
- MX_TIM12_Init();
- MX_TIM13_Init();
- MX_TIM16_Init();
- MX_USB_DEVICE_Init();
- MX_FATFS_Init();
- MX_TIM17_Init();
- MX_DMA_Init();
- MX_TIM19_Init();
- /* USER CODE BEGIN 2 */
- /* SAE J1939 */
- J1939 j1939 = {0};
- for(uint8_t i = 0; i < 0xFF; i++)
- j1939.ECU_address[i] = 0xFF;
- /* Start */
- STM32_PLC_Start_Analog_Input(&htim12, &htim13, &hsdadc1, &hsdadc2, &hsdadc3);
- STM32_PLC_Start_Analog_Output(&hdac1, &hdac2, &htim6);
- STM32_PLC_Start_Encoder(&htim4, &htim19);
- STM32_PLC_Start_Input_Capture(&htim17, &htim16);
- STM32_PLC_Start_PWM(&htim2, &htim5);
- STM32_PLC_Start_SD(&hspi2, SD_CS_GPIO_Port, SD_CS_Pin);
- STM32_PLC_Start_RTC(&hrtc);
- STM32_PLC_Start_CAN(&hcan, &j1939);
- STM32_PLC_Start_LCD(&hspi1, &hspi2, LCD_CS_GPIO_Port, LCD_CS_Pin, LCD_DC_GPIO_Port, LCD_DC_Pin, LCD_RST_GPIO_Port, LCD_RST_Pin, TS_CS_GPIO_Port, TS_CS_Pin);
- /* Reset outputs */
- STM32_PLC_PWM_Reset();
- STM32_PLC_Analog_Output_Reset();
- /* If we are going to send and receive the ECU identification and component identification, we need to specify the size of them */
- j1939.this_identifications.ecu_identification.length_of_each_field = 30;
- j1939.this_identifications.component_identification.length_of_each_field = 30;
- j1939.from_other_ecu_identifications.ecu_identification.length_of_each_field = 30;
- j1939.from_other_ecu_identifications.component_identification.length_of_each_field = 30;
- /* LCD */
- //STM32_PLC_LCD_Show_Intro_Frame();
- uint8_t frame_id = 0;
- STM32_PLC_LCD_Show_Main_Frame(&frame_id, false);
- /* Mount SD card and read initial start up */
- STM32_PLC_Initial_Startup(&j1939);
- /* USER CODE END 2 */
- /* Infinite loop */
- /* USER CODE BEGIN WHILE */
- while (1)
- {
- /* USER CODE END WHILE */
- /* USER CODE BEGIN 3 */
- /* Listen for frame changes */
- STM32_PLC_LCD_Call_Main_Logic(&frame_id, &j1939);
- /* Perform control program */
- STM32_PLC_LCD_Execute_Control_Program(&j1939);
- }
- /* USER CODE END 3 */
- }
- /**
- * @brief System Clock Configuration
- * @retval None
- */
- void SystemClock_Config(void)
- {
- RCC_OscInitTypeDef RCC_OscInitStruct = {0};
- RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
- /** Initializes the RCC Oscillators according to the specified parameters
- * in the RCC_OscInitTypeDef structure.
- */
- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE;
- RCC_OscInitStruct.HSEState = RCC_HSE_ON;
- RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
- RCC_OscInitStruct.HSIState = RCC_HSI_ON;
- RCC_OscInitStruct.LSIState = RCC_LSI_ON;
- RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
- RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
- RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
- if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Initializes the CPU, AHB and APB buses clocks
- */
- RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
- |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
- RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
- RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
- RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
- RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
- if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
- {
- Error_Handler();
- }
- PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USB|RCC_PERIPHCLK_USART1
- |RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_SDADC;
- PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
- PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
- PeriphClkInit.USBClockSelection = RCC_USBCLKSOURCE_PLL;
- PeriphClkInit.SdadcClockSelection = RCC_SDADCSYSCLK_DIV8;
- if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
- {
- Error_Handler();
- }
- HAL_PWREx_EnableSDADC(PWR_SDADC_ANALOG1);
- HAL_PWREx_EnableSDADC(PWR_SDADC_ANALOG2);
- HAL_PWREx_EnableSDADC(PWR_SDADC_ANALOG3);
- }
- /**
- * @brief CAN Initialization Function
- * @param None
- * @retval None
- */
- static void MX_CAN_Init(void)
- {
- /* USER CODE BEGIN CAN_Init 0 */
- /* USER CODE END CAN_Init 0 */
- /* USER CODE BEGIN CAN_Init 1 */
- /* USER CODE END CAN_Init 1 */
- hcan.Instance = CAN;
- hcan.Init.Prescaler = 16;
- hcan.Init.Mode = CAN_MODE_NORMAL;
- hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;
- hcan.Init.TimeSeg1 = CAN_BS1_3TQ;
- hcan.Init.TimeSeg2 = CAN_BS2_2TQ;
- hcan.Init.TimeTriggeredMode = DISABLE;
- hcan.Init.AutoBusOff = DISABLE;
- hcan.Init.AutoWakeUp = DISABLE;
- hcan.Init.AutoRetransmission = DISABLE;
- hcan.Init.ReceiveFifoLocked = DISABLE;
- hcan.Init.TransmitFifoPriority = DISABLE;
- if (HAL_CAN_Init(&hcan) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN CAN_Init 2 */
- /* USER CODE END CAN_Init 2 */
- }
- /**
- * @brief DAC1 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_DAC1_Init(void)
- {
- /* USER CODE BEGIN DAC1_Init 0 */
- /* USER CODE END DAC1_Init 0 */
- DAC_ChannelConfTypeDef sConfig = {0};
- /* USER CODE BEGIN DAC1_Init 1 */
- /* USER CODE END DAC1_Init 1 */
- /** DAC Initialization
- */
- hdac1.Instance = DAC1;
- if (HAL_DAC_Init(&hdac1) != HAL_OK)
- {
- Error_Handler();
- }
- /** DAC channel OUT1 config
- */
- sConfig.DAC_Trigger = DAC_TRIGGER_T6_TRGO;
- sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
- if (HAL_DAC_ConfigChannel(&hdac1, &sConfig, DAC_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- /** DAC channel OUT2 config
- */
- if (HAL_DAC_ConfigChannel(&hdac1, &sConfig, DAC_CHANNEL_2) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN DAC1_Init 2 */
- /* USER CODE END DAC1_Init 2 */
- }
- /**
- * @brief DAC2 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_DAC2_Init(void)
- {
- /* USER CODE BEGIN DAC2_Init 0 */
- /* USER CODE END DAC2_Init 0 */
- DAC_ChannelConfTypeDef sConfig = {0};
- /* USER CODE BEGIN DAC2_Init 1 */
- /* USER CODE END DAC2_Init 1 */
- /** DAC Initialization
- */
- hdac2.Instance = DAC2;
- if (HAL_DAC_Init(&hdac2) != HAL_OK)
- {
- Error_Handler();
- }
- /** DAC channel OUT1 config
- */
- sConfig.DAC_Trigger = DAC_TRIGGER_T6_TRGO;
- sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
- if (HAL_DAC_ConfigChannel(&hdac2, &sConfig, DAC_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN DAC2_Init 2 */
- /* USER CODE END DAC2_Init 2 */
- }
- /**
- * @brief RTC Initialization Function
- * @param None
- * @retval None
- */
- static void MX_RTC_Init(void)
- {
- /* USER CODE BEGIN RTC_Init 0 */
- /* USER CODE END RTC_Init 0 */
- RTC_TimeTypeDef sTime = {0};
- RTC_DateTypeDef sDate = {0};
- RTC_AlarmTypeDef sAlarm = {0};
- /* USER CODE BEGIN RTC_Init 1 */
- /* USER CODE END RTC_Init 1 */
- /** Initialize RTC Only
- */
- hrtc.Instance = RTC;
- hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
- hrtc.Init.AsynchPrediv = 127;
- hrtc.Init.SynchPrediv = 255;
- hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
- hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
- hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
- if (HAL_RTC_Init(&hrtc) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN Check_RTC_BKUP */
- /* USER CODE END Check_RTC_BKUP */
- /** Initialize RTC and set the Time and Date
- */
- sTime.Hours = 0;
- sTime.Minutes = 0;
- sTime.Seconds = 0;
- sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
- sTime.StoreOperation = RTC_STOREOPERATION_RESET;
- if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK)
- {
- Error_Handler();
- }
- sDate.WeekDay = RTC_WEEKDAY_MONDAY;
- sDate.Month = RTC_MONTH_JANUARY;
- sDate.Date = 1;
- sDate.Year = 0;
- if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK)
- {
- Error_Handler();
- }
- /** Enable the Alarm A
- */
- sAlarm.AlarmTime.Hours = 0;
- sAlarm.AlarmTime.Minutes = 0;
- sAlarm.AlarmTime.Seconds = 0;
- sAlarm.AlarmTime.SubSeconds = 0;
- sAlarm.AlarmTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
- sAlarm.AlarmTime.StoreOperation = RTC_STOREOPERATION_RESET;
- sAlarm.AlarmMask = RTC_ALARMMASK_NONE;
- sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_ALL;
- sAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_DATE;
- sAlarm.AlarmDateWeekDay = 1;
- sAlarm.Alarm = RTC_ALARM_A;
- if (HAL_RTC_SetAlarm(&hrtc, &sAlarm, RTC_FORMAT_BIN) != HAL_OK)
- {
- Error_Handler();
- }
- /** Enable the Alarm B
- */
- sAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_WEEKDAY;
- sAlarm.Alarm = RTC_ALARM_B;
- /* USER CODE BEGIN RTC_Init 2 */
- /* USER CODE END RTC_Init 2 */
- }
- /**
- * @brief SDADC1 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_SDADC1_Init(void)
- {
- /* USER CODE BEGIN SDADC1_Init 0 */
- /* USER CODE END SDADC1_Init 0 */
- SDADC_ConfParamTypeDef ConfParamStruct = {0};
- /* USER CODE BEGIN SDADC1_Init 1 */
- /* USER CODE END SDADC1_Init 1 */
- /** Configure the SDADC low power mode, fast conversion mode,
- slow clock mode and SDADC1 reference voltage
- */
- hsdadc1.Instance = SDADC1;
- hsdadc1.Init.IdleLowPowerMode = SDADC_LOWPOWER_NONE;
- hsdadc1.Init.FastConversionMode = SDADC_FAST_CONV_DISABLE;
- hsdadc1.Init.SlowClockMode = SDADC_SLOW_CLOCK_DISABLE;
- hsdadc1.Init.ReferenceVoltage = SDADC_VREF_EXT;
- hsdadc1.InjectedTrigger = SDADC_EXTERNAL_TRIGGER;
- hsdadc1.ExtTriggerEdge = SDADC_EXT_TRIG_RISING_EDGE;
- if (HAL_SDADC_Init(&hsdadc1) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Mode
- */
- if (HAL_SDADC_SelectInjectedDelay(&hsdadc1, SDADC_INJECTED_DELAY_NONE) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_SDADC_SelectInjectedExtTrigger(&hsdadc1, SDADC_EXT_TRIG_TIM13_CC1, SDADC_EXT_TRIG_RISING_EDGE) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_SDADC_SelectInjectedTrigger(&hsdadc1, SDADC_EXTERNAL_TRIGGER) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_SDADC_InjectedConfigChannel(&hsdadc1, SDADC_CHANNEL_0|SDADC_CHANNEL_1
- |SDADC_CHANNEL_2|SDADC_CHANNEL_3
- |SDADC_CHANNEL_4|SDADC_CHANNEL_5
- |SDADC_CHANNEL_6|SDADC_CHANNEL_7
- |SDADC_CHANNEL_8, SDADC_CONTINUOUS_CONV_ON) != HAL_OK)
- {
- Error_Handler();
- }
- /** Set parameters for SDADC configuration 0 Register
- */
- ConfParamStruct.InputMode = SDADC_INPUT_MODE_SE_ZERO_REFERENCE;
- ConfParamStruct.Gain = SDADC_GAIN_1;
- ConfParamStruct.CommonMode = SDADC_COMMON_MODE_VSSA;
- ConfParamStruct.Offset = 0;
- if (HAL_SDADC_PrepareChannelConfig(&hsdadc1, SDADC_CONF_INDEX_0, &ConfParamStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Set parameters for SDADC configuration 1 Register
- */
- if (HAL_SDADC_PrepareChannelConfig(&hsdadc1, SDADC_CONF_INDEX_1, &ConfParamStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Set parameters for SDADC configuration 2 Register
- */
- if (HAL_SDADC_PrepareChannelConfig(&hsdadc1, SDADC_CONF_INDEX_2, &ConfParamStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc1, SDADC_CHANNEL_0, SDADC_CONF_INDEX_0) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc1, SDADC_CHANNEL_1, SDADC_CONF_INDEX_0) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc1, SDADC_CHANNEL_2, SDADC_CONF_INDEX_0) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc1, SDADC_CHANNEL_3, SDADC_CONF_INDEX_1) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc1, SDADC_CHANNEL_4, SDADC_CONF_INDEX_1) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc1, SDADC_CHANNEL_5, SDADC_CONF_INDEX_1) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc1, SDADC_CHANNEL_6, SDADC_CONF_INDEX_2) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc1, SDADC_CHANNEL_7, SDADC_CONF_INDEX_2) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc1, SDADC_CHANNEL_8, SDADC_CONF_INDEX_2) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN SDADC1_Init 2 */
- /* USER CODE END SDADC1_Init 2 */
- }
- /**
- * @brief SDADC2 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_SDADC2_Init(void)
- {
- /* USER CODE BEGIN SDADC2_Init 0 */
- /* USER CODE END SDADC2_Init 0 */
- SDADC_ConfParamTypeDef ConfParamStruct = {0};
- /* USER CODE BEGIN SDADC2_Init 1 */
- /* USER CODE END SDADC2_Init 1 */
- /** Configure the SDADC low power mode, fast conversion mode,
- slow clock mode and SDADC1 reference voltage
- */
- hsdadc2.Instance = SDADC2;
- hsdadc2.Init.IdleLowPowerMode = SDADC_LOWPOWER_NONE;
- hsdadc2.Init.FastConversionMode = SDADC_FAST_CONV_DISABLE;
- hsdadc2.Init.SlowClockMode = SDADC_SLOW_CLOCK_DISABLE;
- hsdadc2.Init.ReferenceVoltage = SDADC_VREF_EXT;
- hsdadc2.InjectedTrigger = SDADC_EXTERNAL_TRIGGER;
- hsdadc2.ExtTriggerEdge = SDADC_EXT_TRIG_RISING_EDGE;
- if (HAL_SDADC_Init(&hsdadc2) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Mode
- */
- if (HAL_SDADC_SelectInjectedDelay(&hsdadc2, SDADC_INJECTED_DELAY_NONE) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_SDADC_SelectInjectedExtTrigger(&hsdadc2, SDADC_EXT_TRIG_TIM12_CC1, SDADC_EXT_TRIG_RISING_EDGE) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_SDADC_SelectInjectedTrigger(&hsdadc2, SDADC_EXTERNAL_TRIGGER) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_SDADC_InjectedConfigChannel(&hsdadc2, SDADC_CHANNEL_0|SDADC_CHANNEL_1
- |SDADC_CHANNEL_2, SDADC_CONTINUOUS_CONV_ON) != HAL_OK)
- {
- Error_Handler();
- }
- /** Set parameters for SDADC configuration 0 Register
- */
- ConfParamStruct.InputMode = SDADC_INPUT_MODE_SE_ZERO_REFERENCE;
- ConfParamStruct.Gain = SDADC_GAIN_1;
- ConfParamStruct.CommonMode = SDADC_COMMON_MODE_VSSA;
- ConfParamStruct.Offset = 0;
- if (HAL_SDADC_PrepareChannelConfig(&hsdadc2, SDADC_CONF_INDEX_0, &ConfParamStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Set parameters for SDADC configuration 1 Register
- */
- if (HAL_SDADC_PrepareChannelConfig(&hsdadc2, SDADC_CONF_INDEX_1, &ConfParamStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Set parameters for SDADC configuration 2 Register
- */
- if (HAL_SDADC_PrepareChannelConfig(&hsdadc2, SDADC_CONF_INDEX_2, &ConfParamStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc2, SDADC_CHANNEL_0, SDADC_CONF_INDEX_0) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc2, SDADC_CHANNEL_1, SDADC_CONF_INDEX_1) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc2, SDADC_CHANNEL_2, SDADC_CONF_INDEX_2) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN SDADC2_Init 2 */
- /* USER CODE END SDADC2_Init 2 */
- }
- /**
- * @brief SDADC3 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_SDADC3_Init(void)
- {
- /* USER CODE BEGIN SDADC3_Init 0 */
- /* USER CODE END SDADC3_Init 0 */
- SDADC_ConfParamTypeDef ConfParamStruct = {0};
- /* USER CODE BEGIN SDADC3_Init 1 */
- /* USER CODE END SDADC3_Init 1 */
- /** Configure the SDADC low power mode, fast conversion mode,
- slow clock mode and SDADC1 reference voltage
- */
- hsdadc3.Instance = SDADC3;
- hsdadc3.Init.IdleLowPowerMode = SDADC_LOWPOWER_NONE;
- hsdadc3.Init.FastConversionMode = SDADC_FAST_CONV_DISABLE;
- hsdadc3.Init.SlowClockMode = SDADC_SLOW_CLOCK_DISABLE;
- hsdadc3.Init.ReferenceVoltage = SDADC_VREF_EXT;
- hsdadc3.InjectedTrigger = SDADC_EXTERNAL_TRIGGER;
- hsdadc3.ExtTriggerEdge = SDADC_EXT_TRIG_RISING_EDGE;
- if (HAL_SDADC_Init(&hsdadc3) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Mode
- */
- if (HAL_SDADC_SelectInjectedDelay(&hsdadc3, SDADC_INJECTED_DELAY_NONE) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_SDADC_SelectInjectedExtTrigger(&hsdadc3, SDADC_EXT_TRIG_TIM12_CC2, SDADC_EXT_TRIG_RISING_EDGE) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_SDADC_SelectInjectedTrigger(&hsdadc3, SDADC_EXTERNAL_TRIGGER) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_SDADC_InjectedConfigChannel(&hsdadc3, SDADC_CHANNEL_0|SDADC_CHANNEL_2
- |SDADC_CHANNEL_4|SDADC_CHANNEL_6
- |SDADC_CHANNEL_8, SDADC_CONTINUOUS_CONV_ON) != HAL_OK)
- {
- Error_Handler();
- }
- /** Set parameters for SDADC configuration 0 Register
- */
- ConfParamStruct.InputMode = SDADC_INPUT_MODE_DIFF;
- ConfParamStruct.Gain = SDADC_GAIN_1;
- ConfParamStruct.CommonMode = SDADC_COMMON_MODE_VSSA;
- ConfParamStruct.Offset = 0;
- if (HAL_SDADC_PrepareChannelConfig(&hsdadc3, SDADC_CONF_INDEX_0, &ConfParamStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Set parameters for SDADC configuration 1 Register
- */
- if (HAL_SDADC_PrepareChannelConfig(&hsdadc3, SDADC_CONF_INDEX_1, &ConfParamStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Set parameters for SDADC configuration 2 Register
- */
- if (HAL_SDADC_PrepareChannelConfig(&hsdadc3, SDADC_CONF_INDEX_2, &ConfParamStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc3, SDADC_CHANNEL_0, SDADC_CONF_INDEX_0) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc3, SDADC_CHANNEL_2, SDADC_CONF_INDEX_0) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc3, SDADC_CHANNEL_4, SDADC_CONF_INDEX_1) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc3, SDADC_CHANNEL_6, SDADC_CONF_INDEX_1) != HAL_OK)
- {
- Error_Handler();
- }
- /** Configure the Injected Channel
- */
- if (HAL_SDADC_AssociateChannelConfig(&hsdadc3, SDADC_CHANNEL_8, SDADC_CONF_INDEX_2) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN SDADC3_Init 2 */
- /* USER CODE END SDADC3_Init 2 */
- }
- /**
- * @brief SPI1 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_SPI1_Init(void)
- {
- /* USER CODE BEGIN SPI1_Init 0 */
- /* USER CODE END SPI1_Init 0 */
- /* USER CODE BEGIN SPI1_Init 1 */
- /* USER CODE END SPI1_Init 1 */
- /* SPI1 parameter configuration*/
- hspi1.Instance = SPI1;
- hspi1.Init.Mode = SPI_MODE_MASTER;
- hspi1.Init.Direction = SPI_DIRECTION_2LINES;
- hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
- hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
- hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
- hspi1.Init.NSS = SPI_NSS_SOFT;
- hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
- hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
- hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
- hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
- hspi1.Init.CRCPolynomial = 7;
- hspi1.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
- hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
- if (HAL_SPI_Init(&hspi1) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN SPI1_Init 2 */
- /* USER CODE END SPI1_Init 2 */
- }
- /**
- * @brief SPI2 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_SPI2_Init(void)
- {
- /* USER CODE BEGIN SPI2_Init 0 */
- /* USER CODE END SPI2_Init 0 */
- /* USER CODE BEGIN SPI2_Init 1 */
- /* USER CODE END SPI2_Init 1 */
- /* SPI2 parameter configuration*/
- hspi2.Instance = SPI2;
- hspi2.Init.Mode = SPI_MODE_MASTER;
- hspi2.Init.Direction = SPI_DIRECTION_2LINES;
- hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
- hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
- hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
- hspi2.Init.NSS = SPI_NSS_SOFT;
- hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;
- hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
- hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
- hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
- hspi2.Init.CRCPolynomial = 7;
- hspi2.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
- hspi2.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
- if (HAL_SPI_Init(&hspi2) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN SPI2_Init 2 */
- /* USER CODE END SPI2_Init 2 */
- }
- /**
- * @brief TIM2 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_TIM2_Init(void)
- {
- /* USER CODE BEGIN TIM2_Init 0 */
- /* USER CODE END TIM2_Init 0 */
- TIM_ClockConfigTypeDef sClockSourceConfig = {0};
- TIM_MasterConfigTypeDef sMasterConfig = {0};
- TIM_OC_InitTypeDef sConfigOC = {0};
- /* USER CODE BEGIN TIM2_Init 1 */
- /* USER CODE END TIM2_Init 1 */
- htim2.Instance = TIM2;
- htim2.Init.Prescaler = 0;
- htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim2.Init.Period = 0xffff;
- htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
- {
- Error_Handler();
- }
- sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
- if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_PWM_Init(&htim2) != HAL_OK)
- {
- Error_Handler();
- }
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
- if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
- {
- Error_Handler();
- }
- sConfigOC.OCMode = TIM_OCMODE_PWM1;
- sConfigOC.Pulse = 0;
- sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
- sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
- if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM2_Init 2 */
- /* USER CODE END TIM2_Init 2 */
- HAL_TIM_MspPostInit(&htim2);
- }
- /**
- * @brief TIM4 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_TIM4_Init(void)
- {
- /* USER CODE BEGIN TIM4_Init 0 */
- /* USER CODE END TIM4_Init 0 */
- TIM_Encoder_InitTypeDef sConfig = {0};
- TIM_MasterConfigTypeDef sMasterConfig = {0};
- /* USER CODE BEGIN TIM4_Init 1 */
- /* USER CODE END TIM4_Init 1 */
- htim4.Instance = TIM4;
- htim4.Init.Prescaler = 0;
- htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim4.Init.Period = 65535;
- htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
- sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
- sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
- sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
- sConfig.IC1Filter = 0;
- sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
- sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
- sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
- sConfig.IC2Filter = 0;
- if (HAL_TIM_Encoder_Init(&htim4, &sConfig) != HAL_OK)
- {
- Error_Handler();
- }
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
- if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM4_Init 2 */
- /* USER CODE END TIM4_Init 2 */
- }
- /**
- * @brief TIM5 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_TIM5_Init(void)
- {
- /* USER CODE BEGIN TIM5_Init 0 */
- /* USER CODE END TIM5_Init 0 */
- TIM_ClockConfigTypeDef sClockSourceConfig = {0};
- TIM_MasterConfigTypeDef sMasterConfig = {0};
- TIM_OC_InitTypeDef sConfigOC = {0};
- /* USER CODE BEGIN TIM5_Init 1 */
- /* USER CODE END TIM5_Init 1 */
- htim5.Instance = TIM5;
- htim5.Init.Prescaler = 0;
- htim5.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim5.Init.Period = 0xffff;
- htim5.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim5.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_Base_Init(&htim5) != HAL_OK)
- {
- Error_Handler();
- }
- sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
- if (HAL_TIM_ConfigClockSource(&htim5, &sClockSourceConfig) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_PWM_Init(&htim5) != HAL_OK)
- {
- Error_Handler();
- }
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
- if (HAL_TIMEx_MasterConfigSynchronization(&htim5, &sMasterConfig) != HAL_OK)
- {
- Error_Handler();
- }
- sConfigOC.OCMode = TIM_OCMODE_PWM1;
- sConfigOC.Pulse = 0;
- sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
- sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
- if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_PWM_ConfigChannel(&htim5, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM5_Init 2 */
- /* USER CODE END TIM5_Init 2 */
- HAL_TIM_MspPostInit(&htim5);
- }
- /**
- * @brief TIM6 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_TIM6_Init(void)
- {
- /* USER CODE BEGIN TIM6_Init 0 */
- /* USER CODE END TIM6_Init 0 */
- TIM_MasterConfigTypeDef sMasterConfig = {0};
- /* USER CODE BEGIN TIM6_Init 1 */
- /* USER CODE END TIM6_Init 1 */
- htim6.Instance = TIM6;
- htim6.Init.Prescaler = 99;
- htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim6.Init.Period = 0xbb80;
- htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
- {
- Error_Handler();
- }
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
- if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM6_Init 2 */
- /* USER CODE END TIM6_Init 2 */
- }
- /**
- * @brief TIM12 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_TIM12_Init(void)
- {
- /* USER CODE BEGIN TIM12_Init 0 */
- /* USER CODE END TIM12_Init 0 */
- TIM_ClockConfigTypeDef sClockSourceConfig = {0};
- TIM_OC_InitTypeDef sConfigOC = {0};
- /* USER CODE BEGIN TIM12_Init 1 */
- /* USER CODE END TIM12_Init 1 */
- htim12.Instance = TIM12;
- htim12.Init.Prescaler = 0;
- htim12.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim12.Init.Period = 0xbb80;
- htim12.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim12.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_Base_Init(&htim12) != HAL_OK)
- {
- Error_Handler();
- }
- sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
- if (HAL_TIM_ConfigClockSource(&htim12, &sClockSourceConfig) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_OC_Init(&htim12) != HAL_OK)
- {
- Error_Handler();
- }
- sConfigOC.OCMode = TIM_OCMODE_TOGGLE;
- sConfigOC.Pulse = 0;
- sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
- sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
- if (HAL_TIM_OC_ConfigChannel(&htim12, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- sConfigOC.OCMode = TIM_OCMODE_TIMING;
- if (HAL_TIM_OC_ConfigChannel(&htim12, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM12_Init 2 */
- /* USER CODE END TIM12_Init 2 */
- }
- /**
- * @brief TIM13 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_TIM13_Init(void)
- {
- /* USER CODE BEGIN TIM13_Init 0 */
- /* USER CODE END TIM13_Init 0 */
- TIM_OC_InitTypeDef sConfigOC = {0};
- /* USER CODE BEGIN TIM13_Init 1 */
- /* USER CODE END TIM13_Init 1 */
- htim13.Instance = TIM13;
- htim13.Init.Prescaler = 0;
- htim13.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim13.Init.Period = 0xbb80;
- htim13.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim13.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_Base_Init(&htim13) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_OC_Init(&htim13) != HAL_OK)
- {
- Error_Handler();
- }
- sConfigOC.OCMode = TIM_OCMODE_TOGGLE;
- sConfigOC.Pulse = 0;
- sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
- sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
- if (HAL_TIM_OC_ConfigChannel(&htim13, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM13_Init 2 */
- /* USER CODE END TIM13_Init 2 */
- }
- /**
- * @brief TIM16 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_TIM16_Init(void)
- {
- /* USER CODE BEGIN TIM16_Init 0 */
- /* USER CODE END TIM16_Init 0 */
- TIM_IC_InitTypeDef sConfigIC = {0};
- /* USER CODE BEGIN TIM16_Init 1 */
- /* USER CODE END TIM16_Init 1 */
- htim16.Instance = TIM16;
- htim16.Init.Prescaler = 4799;
- htim16.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim16.Init.Period = 0xffff;
- htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim16.Init.RepetitionCounter = 0;
- htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_Base_Init(&htim16) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_IC_Init(&htim16) != HAL_OK)
- {
- Error_Handler();
- }
- sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
- sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
- sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
- sConfigIC.ICFilter = 0;
- if (HAL_TIM_IC_ConfigChannel(&htim16, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM16_Init 2 */
- /* USER CODE END TIM16_Init 2 */
- }
- /**
- * @brief TIM17 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_TIM17_Init(void)
- {
- /* USER CODE BEGIN TIM17_Init 0 */
- /* USER CODE END TIM17_Init 0 */
- TIM_IC_InitTypeDef sConfigIC = {0};
- /* USER CODE BEGIN TIM17_Init 1 */
- /* USER CODE END TIM17_Init 1 */
- htim17.Instance = TIM17;
- htim17.Init.Prescaler = 4799;
- htim17.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim17.Init.Period = 0xffff;
- htim17.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim17.Init.RepetitionCounter = 0;
- htim17.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_Base_Init(&htim17) != HAL_OK)
- {
- Error_Handler();
- }
- if (HAL_TIM_IC_Init(&htim17) != HAL_OK)
- {
- Error_Handler();
- }
- sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
- sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
- sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
- sConfigIC.ICFilter = 0;
- if (HAL_TIM_IC_ConfigChannel(&htim17, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM17_Init 2 */
- /* USER CODE END TIM17_Init 2 */
- }
- /**
- * @brief TIM19 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_TIM19_Init(void)
- {
- /* USER CODE BEGIN TIM19_Init 0 */
- /* USER CODE END TIM19_Init 0 */
- TIM_Encoder_InitTypeDef sConfig = {0};
- TIM_MasterConfigTypeDef sMasterConfig = {0};
- /* USER CODE BEGIN TIM19_Init 1 */
- /* USER CODE END TIM19_Init 1 */
- htim19.Instance = TIM19;
- htim19.Init.Prescaler = 0;
- htim19.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim19.Init.Period = 65535;
- htim19.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim19.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
- sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
- sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
- sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
- sConfig.IC1Filter = 0;
- sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
- sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
- sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
- sConfig.IC2Filter = 0;
- if (HAL_TIM_Encoder_Init(&htim19, &sConfig) != HAL_OK)
- {
- Error_Handler();
- }
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
- if (HAL_TIMEx_MasterConfigSynchronization(&htim19, &sMasterConfig) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM19_Init 2 */
- /* USER CODE END TIM19_Init 2 */
- }
- /**
- * @brief USART1 Initialization Function
- * @param None
- * @retval None
- */
- static void MX_USART1_UART_Init(void)
- {
- /* USER CODE BEGIN USART1_Init 0 */
- /* USER CODE END USART1_Init 0 */
- /* USER CODE BEGIN USART1_Init 1 */
- /* USER CODE END USART1_Init 1 */
- huart1.Instance = USART1;
- huart1.Init.BaudRate = 38400;
- huart1.Init.WordLength = UART_WORDLENGTH_8B;
- huart1.Init.StopBits = UART_STOPBITS_1;
- huart1.Init.Parity = UART_PARITY_NONE;
- huart1.Init.Mode = UART_MODE_TX_RX;
- huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
- huart1.Init.OverSampling = UART_OVERSAMPLING_16;
- huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
- huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
- if (HAL_UART_Init(&huart1) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN USART1_Init 2 */
- /* USER CODE END USART1_Init 2 */
- }
- /**
- * Enable DMA controller clock
- */
- static void MX_DMA_Init(void)
- {
- /* DMA controller clock enable */
- __HAL_RCC_DMA1_CLK_ENABLE();
- __HAL_RCC_DMA2_CLK_ENABLE();
- /* DMA interrupt init */
- /* DMA1_Channel1_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0);
- HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn);
- /* DMA1_Channel3_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0);
- HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn);
- /* DMA2_Channel3_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA2_Channel3_IRQn, 0, 0);
- HAL_NVIC_EnableIRQ(DMA2_Channel3_IRQn);
- /* DMA2_Channel4_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA2_Channel4_IRQn, 0, 0);
- HAL_NVIC_EnableIRQ(DMA2_Channel4_IRQn);
- /* DMA2_Channel5_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA2_Channel5_IRQn, 0, 0);
- HAL_NVIC_EnableIRQ(DMA2_Channel5_IRQn);
- }
- /**
- * @brief GPIO Initialization Function
- * @param None
- * @retval None
- */
- static void MX_GPIO_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStruct = {0};
- /* GPIO Ports Clock Enable */
- __HAL_RCC_GPIOE_CLK_ENABLE();
- __HAL_RCC_GPIOC_CLK_ENABLE();
- __HAL_RCC_GPIOF_CLK_ENABLE();
- __HAL_RCC_GPIOA_CLK_ENABLE();
- __HAL_RCC_GPIOB_CLK_ENABLE();
- __HAL_RCC_GPIOD_CLK_ENABLE();
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(CS4_GPIO_Port, CS4_Pin, GPIO_PIN_SET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOF, CS3_Pin|LCD_RST_Pin, GPIO_PIN_RESET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(CS0_GPIO_Port, CS0_Pin, GPIO_PIN_SET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOC, CS1_Pin|CS2_Pin|TS_CS_Pin, GPIO_PIN_SET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(CS5_GPIO_Port, CS5_Pin, GPIO_PIN_SET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_RESET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOD, LCD_CS_Pin|SD_CS_Pin, GPIO_PIN_SET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOD, LED0_Pin|LED1_Pin|LED2_Pin, GPIO_PIN_RESET);
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOB, LED3_Pin|LED4_Pin, GPIO_PIN_RESET);
- /*Configure GPIO pins : DI0_Pin DI1_Pin DI2_Pin DI3_Pin
- DI4_Pin */
- GPIO_InitStruct.Pin = DI0_Pin|DI1_Pin|DI2_Pin|DI3_Pin
- |DI4_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
- /*Configure GPIO pins : DI5_Pin STOP_LOGGING_CONTROL_Pin */
- GPIO_InitStruct.Pin = DI5_Pin|STOP_LOGGING_CONTROL_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- /*Configure GPIO pins : DI6_Pin DI7_Pin */
- GPIO_InitStruct.Pin = DI6_Pin|DI7_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
- /*Configure GPIO pin : CS4_Pin */
- GPIO_InitStruct.Pin = CS4_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(CS4_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pins : CS3_Pin LCD_RST_Pin */
- GPIO_InitStruct.Pin = CS3_Pin|LCD_RST_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
- /*Configure GPIO pin : CS0_Pin */
- GPIO_InitStruct.Pin = CS0_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(CS0_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pins : CS1_Pin CS2_Pin TS_CS_Pin */
- GPIO_InitStruct.Pin = CS1_Pin|CS2_Pin|TS_CS_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- /*Configure GPIO pin : CS5_Pin */
- GPIO_InitStruct.Pin = CS5_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(CS5_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pin : LCD_DC_Pin */
- GPIO_InitStruct.Pin = LCD_DC_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(LCD_DC_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pins : LCD_CS_Pin SD_CS_Pin */
- GPIO_InitStruct.Pin = LCD_CS_Pin|SD_CS_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
- /*Configure GPIO pin : TS_IRQ_Pin */
- GPIO_InitStruct.Pin = TS_IRQ_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
- HAL_GPIO_Init(TS_IRQ_GPIO_Port, &GPIO_InitStruct);
- /*Configure GPIO pins : LED0_Pin LED1_Pin LED2_Pin */
- GPIO_InitStruct.Pin = LED0_Pin|LED1_Pin|LED2_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
- /*Configure GPIO pins : LED3_Pin LED4_Pin */
- GPIO_InitStruct.Pin = LED3_Pin|LED4_Pin;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- }
- /* USER CODE BEGIN 4 */
- /* USER CODE END 4 */
- /**
- * @brief This function is executed in case of error occurrence.
- * @retval None
- */
- void Error_Handler(void)
- {
- /* USER CODE BEGIN Error_Handler_Debug */
- /* User can add his own implementation to report the HAL error return state */
- __disable_irq();
- while (1)
- {
- }
- /* USER CODE END Error_Handler_Debug */
- }
- #ifdef USE_FULL_ASSERT
- /**
- * @brief Reports the name of the source file and the source line number
- * where the assert_param error has occurred.
- * @param file: pointer to the source file name
- * @param line: assert_param error line source number
- * @retval None
- */
- void assert_failed(uint8_t *file, uint32_t line)
- {
- /* USER CODE BEGIN 6 */
- /* User can add his own implementation to report the file name and line number,
- ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
- /* USER CODE END 6 */
- }
- #endif /* USE_FULL_ASSERT */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement