STM32 HRTIM 时钟同步输出

本文介绍如何通过HRTIM进行两个芯片之间的时钟信号同步。主要内容包括:初始化Master和Timer_A时钟,设置不同事件作为输出信号源,配置信号脉冲方向,以及输出引脚初始化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时钟同步用于两个芯片做HRTIM的时钟信号同步

  1. 初始化Master 和Timer_A时钟,使用Cube自动生成;
  2. 设置事件作为输出信号源,有四种形式00:主定时器启动:01:主定时器compare1;10:TimerA启动或者关闭;11:TimerA compare1;当模式为00或者11时产生的信号只用一次并非每一个周期的开始。
HRTIM1->sMasterRegs.MCR |= (HRTIM_MCR_SYNC_SRC_0); // 此时是master compare1输出信号
  1. 设置信号脉冲方向,10:正脉冲;11反脉冲
HRTIM1->sMasterRegs.MCR |= HRTIM_MCR_SYNC_OUT_1	// 正脉冲输出
  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);  
}
  1. 使能HRTIM
HAL_HRTIM_WaveformCounterStart(&hhrtim1,HRTIM_TIMERID_MASTER|HRTIM_TIMERID_TIMER_A);
HAL_HRTIM_WaveformOutputStart(&hhrtim1,HRTIM_OUTPUT_TA1);

比较器的比较值不能为0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值