加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线15915421161

SIEMENS山西省晋中市 西门子代理商——西门子华北一级总代理

更新时间
2024-11-16 07:00:00
价格
请来电询价
西门子总代理
PLC
西门子一级代
驱动
西门子代理商
伺服电机
联系电话
15903418770
联系手机
15915421161
联系人
张经理
立即询价

详细介绍
1.3.1 时钟源

从上图可以看出,计数器的时钟源可以为:

  • 由RCC的内部时钟分频得到

  • 由定时器的TIMx_ETR引脚得到

  • 由其他定时器通过TRGO输出得到

  • 一般使用RCC的内部时钟CK_INT,也即定时器时钟TIMxCLK,经APB1或APB2预分频器后分频提供。

    关于定时器时钟源的具体细节,可以来看一下STM32F4的时钟树

    从STM32F4的内部时钟树可知:

  • gaoji定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线(84MHZ)

  • 通用定时器timer2~timer5,通用定时器timer12~timer14以及基本定时器timer6,timer7的时钟来源是APB1总线(42MHZ)

  • 另外:

  • 当APB1和APB2分频数为1的时候,各定时器的时钟就是对应的APB1或APB2的时钟;

  • 如果APB1和APB2分频数不为1,那么各定时器的时钟就是对应的APB1或APB2的时钟的2倍

    由于库函数中 APB1 预分频的系数默认是 2,所以,所以TIM1、TIM8~TIM11的时钟为APB2时钟的两倍即168MHz,TIM2~TIM7、TIM12~TIM14的时钟为APB1的时钟的两倍即84MHz

  • 1.3.2 计数器时钟

    由于定时器时钟的提供的可以频率较高,计数器不需要这么高的频率来计数,所以会进行降频,使用一个合适的低频时钟来计数。

    定时器时钟经过PSC 预分频器之后,即 CK_CNT,用来驱动计数器计数。PSC 是一个16 位的预分频器,可以对定时器时钟TIMxCLK 进行 1~65536 之间的任何一个数进行分频。

    具体计算方式为:CK_CNT=TIMxCLK/(PSC+1)。

    比如,使用STM32F4的通用定时器2(TIM2CLK为APB1的时钟的两倍即84MHz),PSC设置为83,则计数时钟为84MHz/(83+1)=1MHz,即1ms计一个数。

    1.3.3 计数器

     计数器 CNT 是一个 16 位的计数器,只能往上计数,Zui大计数值为 65535。当计数达到自动重装载寄存器的时候产生更新事件,并清零从头开始计数。

    1.3.4 自动重装载寄存器

     自动重装载寄存器 ARR 是一个 16 位的寄存器,这里面装着计数器能计数的Zui大数值。当计数到这个值的时候,如果使能了中断的,定时器就产生溢出中断。

    2定时器输出PWM原理

    如下图是PWM输出的原理示意图:

    假设定时器工作模式设置为向上计数 PWM模式,且当 CNT

  • 当 CNT 值小于 CCRx 的时候, IO 输出高电平 (1)

  • 当 CNT 值大于等于 CCRx 的时候,IO 输出低电平 (0)

  • 当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。

  • 因此,改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的周期(频率),这就是利用定时器输出PWM 的基本原理。


    相关产品

    联系方式

    • 电  话:15903418770
    • 联系人:张经理
    • 手  机:15915421161
    • 微  信:15915421161