时钟同步用于两个芯片做HRTIM的时钟信号同步
- 初始化Master 和Timer_A时钟,使用Cube自动生成;
- 设置事件作为输出信号源,有四种形式00:主定时器启动:01:主定时器compare1;10:TimerA启动或者关闭;11:TimerA compare1;当模式为00或者11时产生的信号只用一次并非每一个周期的开始。
HRTIM1->sMasterRegs.MCR |= (HRTIM_MCR_SYNC_SRC_0); // 此时是master compare1输出信号
- 设置信号脉冲方向,10:正脉冲;11反脉冲
HRTIM1->sMasterRegs.MCR |= HRTIM_MCR_SYNC_OUT_1 // 正脉冲输出
- 初始化输出引脚
void HRTIM_GPIO_SCOUT_INIT()
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF13_HRTIM1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
- 使能HRTIM
HAL_HRTIM_WaveformCounterStart(&hhrtim1,HRTIM_TIMERID_MASTER|HRTIM_TIMERID_TIMER_A);
HAL_HRTIM_WaveformOutputStart(&hhrtim1,HRTIM_OUTPUT_TA1);
比较器的比较值不能为0