关于STM32F411通用定时器的主从模式的理解

定时器的主从模式,一般也称为定时器级联。可以理解为两个定时器可以互相联动。

1、定时器的主模式选择:MMS位。主模式选择,主定时器在达成某种条件下,发送一个信号,(信号具体形式不知)从而触发了从定时器的某种功能。主模式选择就是选择主模式要达成发生信号的某种条件。

(我刚开始以为是主定时器产生了更新事件,直接去操作从定时器的UG呢。。。。。)

主模式一共有以下几类:

0x00复位:主模式的定时器的复位信号。主模式定时器发生UG位复位操作时,会触发一个输出信号。给从定时器。从定时器如果是复位模式,那么触发从定时器的信号相对实际复位信号可能有延迟。

0x01使能:主模式的定时器的使能信号。主模式定时器发生使能操作时,会触发一个输出信号。给从定时器。

0x02更新:主模式的定时器的更新信号。主模式发生更新事件时,例如上下溢出,UG时,给从定时器一个信号。

0x03~0x07捕获及比较输出:主模式的定时器的捕获成功,或者是输出比较完成,会输出一个信号给从定时器。

2、定时器从模式位:SMS位。

从模式也有以下几类:

0x00关闭:不打开从模式。不受控。

0x01编码器模式1,只记通道1的边沿

0x02编码器模式2,只记通道2的边沿

0x03编码器模式3,1通道和2通道的边沿都记。

0x04复位:接收到信号就复位。

0x05门控:接收高电平开始计数,低电平就停止。

0x06触发:接收到信号,自动使能计数器。但没办法通过外部信号停止。

0x07外部模式1:包含上升沿、下降沿、上升沿与下降沿采集。

0x00~0x03:可以理解为不受主模式控制的时候,可选择的内部时钟,与外部模式1。

0x07:可以理解为受主模式控制的时候,内部时钟模式与外部模式1。

3、注意要点:

1)关于主从模式寄存器:MSM位:如果使用主从模式,建议打开此位,可以同步主从定时器。

2)关于从模式的CEN位:从模式选择为触发模式时,当接收到触发信号时,自动CEN。从定时器为其他模式时,则需要先打开CEN位。

3)关于主从模式的外部模式1:昨天使用F411开发板测试时,发现当定时器3作为主模式,处于外部模式1。定时器2作为从模式,处于外部模式1。两个定时器冲突。现象是定时器3可以正常接收到外部边沿并计数,但是定时器2收不到定时器3发出的触发信号。如果将定时器2从模式改成其他例如复位、触发,则可以正常使用。如果将定时器2作为主模式,定时器3为从模式,然后设置触发源,其他条件不变,也可以正常使用。

所以在使用定时器级联的时候最好先测试一下,以防万一。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于STM32定时器主从模式选择,可以根据具体应用需求和定时器功能来决定。 首先,STM32定时器有多个类型,如通用定时器(TIM2-TIM5),高级定时器(TIM1-TIM8)等。这些定时器在功能和配置上有一些差异。 对于通用定时器,可以选择使用主从模式,其中一个定时器作为主定时器,另一个作为从定时器主从模式适合需要多个定时器同时工作的场景。 下面是一个使用通用定时器主从模式的示例代码: ```c // 定时器2作为主定时器 TIM2->CR2 |= TIM_CR2_MMS_1; // 设置主模式为OC1REF信号 TIM2->CR1 |= TIM_CR1_CEN; // 使能定时器2 // 定时器3作为从定时器 TIM3->SMCR |= TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1; // 设置从模式主从模式 TIM3->CR1 |= TIM_CR1_CEN; // 使能定时器3 ``` 对于高级定时器,可以选择使用互补输出模式主从模式。互补输出模式适用于需要同时控制多个PWM信号的场景,而主从模式适用于需要多个高级定时器同时工作的场景。 下面是一个使用高级定时器主从模式的示例代码: ```c // 定时器1作为主定时器 TIM1->BDTR |= TIM_BDTR_MOE; // 使能主输出 TIM1->CR1 |= TIM_CR1_CEN; // 使能定时器1 // 定时器8作为从定时器 TIM8->SMCR |= TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1; // 设置从模式主从模式 TIM8->CR1 |= TIM_CR1_CEN; // 使能定时器8 ``` 需要根据具体的硬件和应用情况进行配置,以上代码仅供参考。在使用定时器主从模式时,还需要注意定时器的时钟配置、计数器值的设置等。建议参考相关的STM32芯片的参考手册和定时器的相关文档进行详细配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值