stm32f103C8t6定时器详解(一)

TIM简介

TIM(Timer)定时器

定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能 根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型,基本定时器只能向上计数,通用和高级有向上、向下、中央对齐三种计数方式。

CK_PSCS是时钟预分频,如果预分频写0,那就是不分频,如果预分频写1,那就是分频为2,输出频率=输入频率/2=36MHZ,以此内推,所以实际分频系数等于预分频系数+1;该预分频器是16位的,所以为啥分频为65536,写的时候为65535,计数器对来自预分频的时钟进行计数,每来一个上升沿就+1,这个计数器是16位的,里面的值从0加到65535,当自增到目标值时,就会产生中断,自动重装载寄存器(也是16位的)用来存储目标值,计数器又从0开始自增,UI是更新中断,当达到计数值,就会触发中断,这个更新中断会通往NVIC,配置好NVIC的定时器通道后,定时器中断就可以得到CPU响应了。下面箭头为更新事件,不会触发中断,但是会触发内部其他电路工作。主模式触发DAC在后面讲解。

下面来看看通用定时器:

基础定时器只能通过内部时钟CK_INT,而通用定时器还可以通过外部时钟ETR,这里可以在这个ETR引脚也就是(PA0引脚,可以根据引脚定义表查看)接个外部方波时钟,通过滤波,这时候信号兵分两路,上一路通过ETRF进入触发控制器,紧跟着可以选择作为时基单元始终了,这一路也叫做外部时钟模式2。还有TRGI也可以提供时钟,主要用作触发输入来使用,可以触发定时器的从模式,当TRGI当做外部时钟来看的时候,就是外部时钟模式2,这两种方式是等价的,只不过下面一种会占用触发通道。还可以是TIIF_ED的边沿信号,来自于输入捕获TIMx_CH1的时钟,TRC信号来自于其他定时器ITRX,通过TRGO输出,具体看表:

定时器级联:首先初始化TIM3,然后通过主模式把它的更新事件映射到TRGO上,然后再初始化TIM2,对应的就是ITR2,再选择时钟为外部时钟模式1,TIM3的更新事件就能驱动TIM2的时基单元,实现定时器级联。

高级定时器:

在通用定时器的基础上,多了个REP寄存器,可以重复几个周期再触发,实际上就是进行了分频,在输出比较多了3个输出,为互补输出,用来形成互补的PWM波,用来驱动三相无刷电机。DTG为死区生成电路,在开关开关瞬间,产生一定时长死区,防止直通现象。TIMX_BKIN为输入刹车功能,给电机驱动提供安全保障,如果外部引脚产生刹车信号,或者内部时钟失效产生故障,那么控制电路就会自动切断电机输出,防止意外的发生。

加中断的原因:因为有很多功能需要用到中断,所以需要加个中断允许位。

加入预分频缓冲器防止一个周期内的频率不一致。

自动加载影子寄存器防止目标值突变导致计数一直找不到目标值,比如刚好计数到F5,目标值突变为36,这时就会继续一直增加,直到溢出,因为找不到目标值36.

这个自行理解一下。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,它具有多个定时器模块,可以用于各种定时、计数和PWM控制等应用。 定时器STM32F103C8T6中非常重要的一个模块,它可以用于生成各种定时信号,比如周期性的中断、PWM波形等。STM32F103C8T6中有多个定时器模块,每个模块都有多个通道,可以独立工作或者互相协作。 定时器的基本工作原理是通过计数器来实现定时功能。定时器模块中有一个计数器寄存器,每当计数器计数到一定值时,就会产生一个定时中断或者输出一个PWM波形。定时器模块还可以配置时钟源、分频系数、计数模式等参数,以满足不同的应用需求。 在STM32F103C8T6中,定时器模块的使用非常灵活,可以通过编程来实现各种复杂的定时、计数和PWM控制功能。同时,STM32F103C8T6还提供了丰富的开发工具和文档,方便开发者进行开发和调试。 ### 回答2: STM32F103C8T6 是 ARM Cortex-M3 内核的 32 位微控制器。它配备了多个定时器,包括基本定时器,高级定时器和通用定时器。这些定时器能够提供很多不同的功能,如 PWM,捕获/比较等。 基本定时器STM32F103C8T6 拥有三个基本定时器 TIM2,TIM3 和 TIM4。它们均可用于通用定时器,PWM 产生和输出比较。基本定时器有 16 位计数器,被预先装载在自动重装载寄存器(ARR)中,并使用更新事件。用户可以通过修改 ARR 和 Prescaler 来更改计数器的周期。 高级定时器STM32F103C8T6 拥有两个高级定时器 TIM1 和 TIM8。它们可用于与基本定时器相同的功能,另外还包括编码器和 PWM 正交解码功能。高级定时器通常具有更高的分辨率,计数器可以是 16 位和 32 位。该计数器由 CNT 寄存器表示。高级定时器有更多的预分频器和 ARR 值,因此可以更好地满足用户的要求。 通用定时器:通用定时器STM32F103C8T6 中最有用的定时器之一,因为它们有很多种应用。 STM32F103C8T6 拥有三个通用定时器 TIM2,TIM3 和 TIM4。这些定时器通常用于产生 PWM 信号,也可以用于捕获和比较输入。在 PWM 模式下,用户可以设置占空比和频率。在捕获和比较模式下,用户可以使用定时器来控制测量输入脉冲的周期,脉冲宽度和延迟等参数。通用定时器具有更高分辨率,最高可以到 32 位。它们还支持定时器级联,可以通过 TIM2 与 TIM3 和 TIM4 进行级联,以扩展计时范围和提高分辨率。 定时器的配置和使用是 STM32F103C8T6 中的重要任务,它们使用户能够为不同的应用场景提供不同的功能。开发人员需要了解不同类型的定时器以及它们的特性,才能在 STM32F103C8T6 上实现最佳性能。同时,要注意定时器配置和使用的复杂性,例如定时器可能与其他外设共享中断等。 ### 回答3: STM32F103C8T6 是一款基于 ARM Cortex-M3 内核的微控制器,内置多个定时器和计数器模块,用于实现各种定时事件和频率测量等功能。 该芯片内置三个基本定时器 TIM1、TIM2 和 TIM3,以及一个高级定时器 TIM4。其中 TIM1 是一个功能最为强大的定时器,支持高级控制功能,如基础定时、PWM 输出、编码器模式、多通道输出等。TIM2 和 TIM3 也是使用比较广泛的定时器,可以实现多种脉冲计数、频率测量和定时中断等应用。TIM4 是一个相对简单的定时器,主要用于周期性任务的计时。 除了基本定时器外,STM32F103C8T6 还内置了多个通用定时/计数器模块 TIM9~TIM14,它们能够实现较高的精度、较强的灵活性和多种操作模式。其中 TIM9 和 TIM12 支持 PWM 模式,TIM10 和 TIM11 支持单脉冲和周期性脉冲输出等。 使用 STM32F103C8T6定时器功能,可以轻松实现各种定时任务和周期性控制,如定时中断、PWM 信号输出、频率测量、编码器计数和舵机控制等。同时,定时器的多种操作模式和多种触发源也为各种应用提供了灵活性和扩展性,用户可以根据实际需求自行选择定时器类型和操作方式。 总之,STM32F103C8T6定时器是该芯片的一个强大功能模块,它不仅提供了基础的定时和计数功能,还支持各种高级控制模式和多种触发源,能够满足各种应用的需求。同时,通过合理的配置和编程,用户可以利用定时器功能实现更多有意义的应用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值