基本定时器

前言按定时器的功能可以分为定时,输出比较(输出PWM波),输入捕获(测量输入信号的脉冲宽度,频率),互补输出,按照定时器分类可以分为基本定时器(只有定时功能),通用定时器(有前三个功能),高级定时器(有全部功能),对于我们的F103系列有2个高级定时器TIM1和TIM8,4个通用定时器TIM2/3/4/5,2个基本定时器TIM6和TIM7基本定时器没有外部的GPIO,不能实现输入捕获和输...
摘要由CSDN通过智能技术生成

前言

按定时器的功能可以分为定时,输出比较(输出PWM波),输入捕获(测量输入信号的脉冲宽度,频率),互补输出,按照定时器分类可以分为基本定时器(只有定时功能),通用定时器(有前三个功能),高级定时器(有全部功能),对于我们的F103系列有2个高级定时器TIM1和TIM8,4个通用定时器TIM2/3/4/5,2个基本定时器TIM6和TIM7
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
基本定时器没有外部的GPIO,不能实现输入捕获和输出比较,只能用来定时,它的时钟来自PCLK1,为72M,可实现1-65536分频, 高级定时器来自APB2,一般也为72M

功能框图

在这里插入图片描述
1
该部分为时钟源,上面的图示已经说明基本定时器的时钟源来自PCLK1,为72M,具体定时器的时钟为多少还要看预分频系数为多少
2.
该部分为控制器部分,控制器用于控制定时器的复位,使能,计数,触发DAC,涉及到的寄存器为:CR1/2,DIER,EGR,SR
3
该部分为时基,包括预分频器,计数器,自动重装载寄存器,1-16位的预分频器PSC对内部时钟CK_PSC进行分配之后,得到计数器时钟CK_CNT = CK_PSC/(PSC+1),计数器CNT在计数器时钟的驱动下开始计数,计数一次的时间为1/CK_CNT,所以计数的时间为自动重装载寄存器(ARR+1)乘以1/CK_CNT,特别注意的是PSC和ARR都有影子寄存器,功能框图上有个影子寄存器,影子寄存器的存在起到一个缓冲的作用,用户值->寄存器->影子寄存器->起作用,如果不使用影子寄存器则用户值在写到寄存器之后则里面起作用,由TIMx_CR1:APRE位控制,还有一个是TIM1和TIM8重复计数寄存器(TIMx_RCR),它用来记录计数结束产生的次数,当我们往该寄存器[7:0]位写入x时,则定时器要发生x次计数结束才会发生中断,也就是我们总计数时间为单次计数时间乘以x.
在这里插入图片描述
bsp_timer.c

#include "bsp_basrtimer.h"
void NVIC_Config(void)
{
   
     NVIC_InitTypeDef NVIC_InitStructure;
     // 设置中断组为0
	 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值