正点原子战舰V3 31讲 通用定时器 基本原理

正点原子战舰V3 31讲 通用定时器 基本原理_第1张图片

正点原子战舰V3 31讲 通用定时器 基本原理_第2张图片

STM32F10X 最多有8个定时器   

正点原子战舰V3 31讲 通用定时器 基本原理_第3张图片

例如  STM32F103RC 有 4个通用定时器   2个高级定时器  2个基本定时器

三种定时器的区别  F1系列只有16位定时器

正点原子战舰V3 31讲 通用定时器 基本原理_第4张图片

正点原子战舰V3 31讲 通用定时器 基本原理_第5张图片

 16位可编程预分频  将定时器的时钟源进行分频 预分频相当于将频率进行一个除法运算。可以降低时钟的频率。时钟低的话计数时间可以更长。

每一个定时器 都有4个独立的通道

正点原子战舰V3 31讲 通用定时器 基本原理_第6张图片

正点原子战舰V3 31讲 通用定时器 基本原理_第7张图片

STM32 中文参考手册的第13章   

时钟来源分类

1.内部时钟来自APB1

触发控制器将 内部时钟作为定时器的时钟来源

2 外部引脚输入 ETR 引脚   ETR对应的引脚可以 在数据手册上找---引脚功能描述 搜索  ETR就可以找到ETR对应的的相关功能 引脚  这里主要针对的是定时器2 3 4  时钟信号先经过极性选择  边沿检测  预分频 以及滤波 产生一个时钟信号(ETRF)可以作为定时器的时基单元(CK_PSC)的一个时钟来源

3内部的 ITR 这个来自于其他的定时器

经过选择器 ITR TRC TRGI 之后到触发控制器 然后由 TRGO输出 

4来至于TI1FP1  TI1FP2  TI1F_ED  这三个时钟来自于输入滤波器 和边沿检测器  这三个最终又来自于定时器的通道 TIMX_CH1 或者TIMX_CH2

在实际应用过程当中 大部分用 内部时钟(CK_INT)


正点原子战舰V3 31讲 通用定时器 基本原理_第8张图片

1.上半部分为时钟发生器 产生 CK_PSC时钟 给预分频器

2.下面为一个时基单元

任何一个定时器都有一个时基单元 首先将 CK_PSC进行一个预分频(PSC)除法运算, 产生了一个CK_CNT这样的一个时钟这个时钟才是然后在这个时钟的控制下开始计数 (向上或者向下)。它的上下计数模式可以由触发控制器相应的寄存器来配置来配置的  计数到重装载值可以产生一些溢出事件,可以触发中断或者DMA请求。

正点原子战舰V3 31讲 通用定时器 基本原理_第9张图片计数器最终的时钟

3为输入捕获   输出比较

输入捕获对应的是哪些引脚呢?还是看数据手册  PA0对应定时器5的通道1    PA1对应的是定时器5的通道2

例如  捕获一个上升沿 那么先进行一个输入滤波和边沿检测,输入滤波器是抗干扰的,  这里捕获和比较寄存器会将计数器的值记下来,当捕获到下降沿的时候又将计数器的值记下来。这样就可以来计算脉冲的宽度(捕获脉冲宽度)每一个定时器都有4个独立的通道。同一个时间同一个定时器要么用作输出比较,要么用作输出比较

输出比较:

例如我们在捕获比较寄存器,我们在这个寄存器里设一个值,对于 计数器CNT 从初值(重装载值)开始从下往上计数,在计数过程中与捕获比较寄存器中的那个值进行比较。假如计数器的初值是100,捕获比较寄存器中的值是50,如果计数器的值比50大,就控制相应的通道设置为高电平。如果计数器的值小于50就输出低电平,这样就可以产生一个PWM波形。如果我们想调整

调整他的占空比,只需要调整捕获比较寄存器中的值就可以了。 如果我们要调整周期,就要对CNT初值进行调整。

正点原子战舰V3 31讲 通用定时器 基本原理_第10张图片


正点原子战舰V3 31讲 通用定时器 基本原理_第11张图片

QQ860099671

你可能感兴趣的:(stm32)