Cube生成的HRTIM初始化配置代码如下:
HRTIM_ADCTriggerCfgTypeDef pADCTriggerCfg = {0};HRTIM_TimeBaseCfgTypeDef pTimeBaseCfg = {0};HRTIM_TimerCfgTypeDef pTimerCfg = {0};HRTIM_CompareCfgTypeDef pCompareCfg = {0};HRTIM_OutputCfgTypeDef pOutputCfg = {0};
/
USER CODE BEGIN HRTIM1_Init 1 /
/
USER CODE END HRTIM1_Init 1 /hhrtim1.Instance = HRTIM1;hhrtim1.Init.HRTIMInterruptResquests = HRTIM_IT_NONE;hhrtim1.Init.SyncOptions = HRTIM_SYNCOPTION_MASTER;hhrtim1.Init.SyncOutputSource = HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1;hhrtim1.Init.SyncOutputPolarity = HRTIM_SYNCOUTPUTPOLARITY_NONE;if (HAL_HRTIM_Init(&hhrtim1) != HAL_OK){Error_Handler();}if (HAL_HRTIM_DLLCalibrationStart(&hhrtim1, HRTIM_CALIBRATIONRATE_14) != HAL_OK){Error_Handler();}if (HAL_HRTIM_PollForDLLCalibration(&hhrtim1, 10) != HAL_OK){Error_Handler();}pADCTriggerCfg.UpdateSource = HRTIM_ADCTRIGGERUPDATE_MASTER;pADCTriggerCfg.Trigger = HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP2;if (HAL_HRTIM_ADCTriggerConfig(&hhrtim1, HRTIM_ADCTRIGGER_2, &pADCTriggerCfg) != HAL_OK){Error_Handler();}pADCTriggerCfg.Trigger = HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP2;if (HAL_HRTIM_ADCTriggerConfig(&hhrtim1, HRTIM_ADCTRIGGER_4, &pADCTriggerCfg) != HAL_OK){Error_Handler();}pTimeBaseCfg.Period = 15360;pTimeBaseCfg.RepetitionCounter = 0x00;pTimeBaseCfg.PrescalerRatio = HRTIM_PRESCALERRATIO_MUL32;pTimeBaseCfg.Mode = HRTIM_MODE_CONTINUOUS;if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, &pTimeBaseCfg) != HAL_OK){Error_Handler();}pTimerCfg.InterruptRequests = HRTIM_MASTER_IT_NONE;pTimerCfg.DMARequests = HRTIM_MASTER_DMA_NONE;pTimerCfg.DMASrcAddress = 0x0000;pTimerCfg.DMADstAddress = 0x0000;pTimerCfg.DMASize = 0x1;pTimerCfg.HalfModeEnable = HRTIM_HALFMODE_DISABLED;pTimerCfg.StartOnSync = HRTIM_SYNCSTART_DISABLED;pTimerCfg.ResetOnSync = HRTIM_SYNCRESET_DISABLED;pTimerCfg.DACSynchro = HRTIM_DACSYNC_NONE;pTimerCfg.PreloadEnable = HRTIM_PRELOAD_DISABLED;pTimerCfg.UpdateGating = HRTIM_UPDATEGATING_INDEPENDENT;pTimerCfg.BurstMode = HRTIM_TIMERBURSTMODE_MAINTAINCLOCK;pTimerCfg.RepetitionUpdate = HRTIM_UPDATEONREPETITION_DISABLED;if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, &pTimerCfg) != HAL_OK){Error_Handler();}pCompareCfg.CompareValue = 7680;if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK){Error_Handler();}if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimeBaseCfg) != HAL_OK){Error_Handler();}pTimerCfg.InterruptRequests = HRTIM_TIM_IT_NONE;pTimerCfg.DMARequests = HRTIM_TIM_DMA_NONE;pTimerCfg.PushPull = HRTIM_TIMPUSHPULLMODE_DISABLED;pTimerCfg.FaultEnable = HRTIM_TIMFAULTENABLE_NONE;pTimerCfg.FaultLock = HRTIM_TIMFAULTLOCK_READWRITE;pTimerCfg.DeadTimeInsertion = HRTIM_TIMDEADTIMEINSERTION_DISABLED;pTimerCfg.DelayedProtectionMode = HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED;pTimerCfg.UpdateTrigger = HRTIM_TIMUPDATETRIGGER_NONE;pTimerCfg.ResetTrigger = HRTIM_TIMRESETTRIGGER_NONE;pTimerCfg.ResetUpdate = HRTIM_TIMUPDATEONRESET_DISABLED;if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimerCfg) != HAL_OK){Error_Handler();}if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimerCfg) != HAL_OK){Error_Handler();}pCompareCfg.CompareValue = 2000;pCompareCfg.AutoDelayedMode = HRTIM_AUTODELAYEDMODE_REGULAR;pCompareCfg.AutoDelayedTimeout = 0x0000;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_COMPAREUNIT_2, &pCompareCfg) != HAL_OK){Error_Handler();}
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_2, &pCompareCfg) != HAL_OK){Error_Handler();}pCompareCfg.CompareValue = 100;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_4, &pCompareCfg) != HAL_OK){Error_Handler();}pOutputCfg.Polarity = HRTIM_OUTPUTPOLARITY_HIGH;pOutputCfg.SetSource = HRTIM_OUTPUTSET_MASTERPER;pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_MASTERCMP1;pOutputCfg.IdleMode = HRTIM_OUTPUTIDLEMODE_NONE;pOutputCfg.IdleLevel = HRTIM_OUTPUTIDLELEVEL_INACTIVE;pOutputCfg.FaultLevel = HRTIM_OUTPUTFAULTLEVEL_NONE;pOutputCfg.ChopperModeEnable = HRTIM_OUTPUTCHOPPERMODE_DISABLED;pOutputCfg.BurstModeEntryDelayed = HRTIM_OUTPUTBURSTMODEENTRY_REGULAR;if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_OUTPUT_TA1, &pOutputCfg) != HAL_OK){Error_Handler();}pOutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP4;if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_OUTPUT_TB1, &pOutputCfg) != HAL_OK){Error_Handler();}pOutputCfg.SetSource = HRTIM_OUTPUTSET_NONE;pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_NONE;if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_OUTPUT_TA2, &pOutputCfg) != HAL_OK){Error_Handler();}if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_OUTPUT_TB2, &pOutputCfg) != HAL_OK){Error_Handler();}if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimeBaseCfg) != HAL_OK){Error_Handler();}/
USER CODE BEGIN HRTIM1_Init 2 /
/
USER CODE END HRTIM1_Init 2 /HAL_HRTIM_MspPostInit(&hhrtim1);
Cube生成的HRTIM初始化配置代码如下:
HRTIM_ADCTriggerCfgTypeDef pADCTriggerCfg = {0};HRTIM_TimeBaseCfgTypeDef pTimeBaseCfg = {0};HRTIM_TimerCfgTypeDef pTimerCfg = {0};HRTIM_CompareCfgTypeDef pCompareCfg = {0};HRTIM_OutputCfgTypeDef pOutputCfg = {0};
/ USER CODE BEGIN HRTIM1_Init 1 /
/ USER CODE END HRTIM1_Init 1 /hhrtim1.Instance = HRTIM1;hhrtim1.Init.HRTIMInterruptResquests = HRTIM_IT_NONE;hhrtim1.Init.SyncOptions = HRTIM_SYNCOPTION_MASTER;hhrtim1.Init.SyncOutputSource = HRTIM_SYNCOUTPUTSOURCE_MASTER_CMP1;hhrtim1.Init.SyncOutputPolarity = HRTIM_SYNCOUTPUTPOLARITY_NONE;if (HAL_HRTIM_Init(&hhrtim1) != HAL_OK){Error_Handler();}if (HAL_HRTIM_DLLCalibrationStart(&hhrtim1, HRTIM_CALIBRATIONRATE_14) != HAL_OK){Error_Handler();}if (HAL_HRTIM_PollForDLLCalibration(&hhrtim1, 10) != HAL_OK){Error_Handler();}pADCTriggerCfg.UpdateSource = HRTIM_ADCTRIGGERUPDATE_MASTER;pADCTriggerCfg.Trigger = HRTIM_ADCTRIGGEREVENT24_TIMERA_CMP2;if (HAL_HRTIM_ADCTriggerConfig(&hhrtim1, HRTIM_ADCTRIGGER_2, &pADCTriggerCfg) != HAL_OK){Error_Handler();}pADCTriggerCfg.Trigger = HRTIM_ADCTRIGGEREVENT24_TIMERB_CMP2;if (HAL_HRTIM_ADCTriggerConfig(&hhrtim1, HRTIM_ADCTRIGGER_4, &pADCTriggerCfg) != HAL_OK){Error_Handler();}pTimeBaseCfg.Period = 15360;pTimeBaseCfg.RepetitionCounter = 0x00;pTimeBaseCfg.PrescalerRatio = HRTIM_PRESCALERRATIO_MUL32;pTimeBaseCfg.Mode = HRTIM_MODE_CONTINUOUS;if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, &pTimeBaseCfg) != HAL_OK){Error_Handler();}pTimerCfg.InterruptRequests = HRTIM_MASTER_IT_NONE;pTimerCfg.DMARequests = HRTIM_MASTER_DMA_NONE;pTimerCfg.DMASrcAddress = 0x0000;pTimerCfg.DMADstAddress = 0x0000;pTimerCfg.DMASize = 0x1;pTimerCfg.HalfModeEnable = HRTIM_HALFMODE_DISABLED;pTimerCfg.StartOnSync = HRTIM_SYNCSTART_DISABLED;pTimerCfg.ResetOnSync = HRTIM_SYNCRESET_DISABLED;pTimerCfg.DACSynchro = HRTIM_DACSYNC_NONE;pTimerCfg.PreloadEnable = HRTIM_PRELOAD_DISABLED;pTimerCfg.UpdateGating = HRTIM_UPDATEGATING_INDEPENDENT;pTimerCfg.BurstMode = HRTIM_TIMERBURSTMODE_MAINTAINCLOCK;pTimerCfg.RepetitionUpdate = HRTIM_UPDATEONREPETITION_DISABLED;if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, &pTimerCfg) != HAL_OK){Error_Handler();}pCompareCfg.CompareValue = 7680;if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK){Error_Handler();}if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimeBaseCfg) != HAL_OK){Error_Handler();}pTimerCfg.InterruptRequests = HRTIM_TIM_IT_NONE;pTimerCfg.DMARequests = HRTIM_TIM_DMA_NONE;pTimerCfg.PushPull = HRTIM_TIMPUSHPULLMODE_DISABLED;pTimerCfg.FaultEnable = HRTIM_TIMFAULTENABLE_NONE;pTimerCfg.FaultLock = HRTIM_TIMFAULTLOCK_READWRITE;pTimerCfg.DeadTimeInsertion = HRTIM_TIMDEADTIMEINSERTION_DISABLED;pTimerCfg.DelayedProtectionMode = HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED;pTimerCfg.UpdateTrigger = HRTIM_TIMUPDATETRIGGER_NONE;pTimerCfg.ResetTrigger = HRTIM_TIMRESETTRIGGER_NONE;pTimerCfg.ResetUpdate = HRTIM_TIMUPDATEONRESET_DISABLED;if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimerCfg) != HAL_OK){Error_Handler();}if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimerCfg) != HAL_OK){Error_Handler();}pCompareCfg.CompareValue = 2000;pCompareCfg.AutoDelayedMode = HRTIM_AUTODELAYEDMODE_REGULAR;pCompareCfg.AutoDelayedTimeout = 0x0000;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_COMPAREUNIT_2, &pCompareCfg) != HAL_OK){Error_Handler();}
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_2, &pCompareCfg) != HAL_OK){Error_Handler();}pCompareCfg.CompareValue = 100;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_4, &pCompareCfg) != HAL_OK){Error_Handler();}pOutputCfg.Polarity = HRTIM_OUTPUTPOLARITY_HIGH;pOutputCfg.SetSource = HRTIM_OUTPUTSET_MASTERPER;pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_MASTERCMP1;pOutputCfg.IdleMode = HRTIM_OUTPUTIDLEMODE_NONE;pOutputCfg.IdleLevel = HRTIM_OUTPUTIDLELEVEL_INACTIVE;pOutputCfg.FaultLevel = HRTIM_OUTPUTFAULTLEVEL_NONE;pOutputCfg.ChopperModeEnable = HRTIM_OUTPUTCHOPPERMODE_DISABLED;pOutputCfg.BurstModeEntryDelayed = HRTIM_OUTPUTBURSTMODEENTRY_REGULAR;if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_OUTPUT_TA1, &pOutputCfg) != HAL_OK){Error_Handler();}pOutputCfg.SetSource = HRTIM_OUTPUTSET_TIMCMP4;if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_OUTPUT_TB1, &pOutputCfg) != HAL_OK){Error_Handler();}pOutputCfg.SetSource = HRTIM_OUTPUTSET_NONE;pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_NONE;if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_OUTPUT_TA2, &pOutputCfg) != HAL_OK){Error_Handler();}if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_OUTPUT_TB2, &pOutputCfg) != HAL_OK){Error_Handler();}if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimeBaseCfg) != HAL_OK){Error_Handler();}/ USER CODE BEGIN HRTIM1_Init 2 /
/ USER CODE END HRTIM1_Init 2 /HAL_HRTIM_MspPostInit(&hhrtim1);
举报