STM32F103ZET6 TIM基本定时器理论部分

在这里插入代码片## TIM基本定时器

大家好,本人是第一次接触博客,有什么写的不好的地方还请原谅。

由于我和几个同学报名参加了一个投篮机器人的比赛,我们一致认定使用STM32F103作为我们的核心板。但是我们的基础只停留在AT89C51上,因此我们需要从头开始学STM32的知识。

以后的文章目的都是在本人学习完之后,重新对笔记进行归纳总结,有什么地方写错了还请各位大佬纠正,谢谢。

今天,我学习的是TIM的基本定时器的理论部分,使用的开发板是野火STM32F103ZET6霸道。我们先来看看基本定时器的简介:
1、计数器16bit,只能向上计数。
2、没有外部GPIO,是内部资源,只能用来定时。
3、时钟来自PCLK1,为72M,可实现1~65536分频。

以下就是基本定时器的功能框图:在这里插入图片描述

它包含三个部分:时钟源、控制器、时基

时钟源:
时钟源来自RCC的TIMx_CLK,属于内部的CK_INT

控制器:
1、控制器用于控制定时器的复位、使能、计数、触发DAC。
2、涉及到的寄存器为CR1/2,PIER,EGR,SR.

时基(定时器的心脏)
是定时器最重要的部分,包括预分频器,计数器,自动重装寄存器。
1、16位的预分频器PSC对内部时钟CK_PSC进行分频之后,得到计数器时钟 CK_CNT=CK_PSC/(PSC+1)
2、计数器CNT在计数器时钟的驱动下计数,计数一次的时间为1/CK_CNT。

计数器、自动重装寄存器
定时器使能后,计数器CNT在CK_CNT驱动下计数,当TCNT值与ARR的设定值相等时就自动生成事件并CNT自动清零,然后重新开始计数,如此重复以上过程。

不知道你们看到在上面的功能框图中PSC预分频器和自动重装寄存器下面的阴影部分了吗?那就是影子寄存器,它的存在起到一个缓冲的作用,用户->寄存器->影子寄存器->起作用,如果不使用影子寄存器,则用户值在写到寄存器之后才在里面起作用。

附一段 时基初始化结构体的代码:

typedef struct
{
    
    
uint16_t TIM_Prescaler;//分频因子

uint16_t TIM_CounterMode;//计数模式。基本定时器只能向上计数

uint32_t TIM_Period;//自动重装载值

uint16_t TIM_ClockDivision;//外部输入时钟分频因子,基本定时器没有

uint8_t  TIM_RepetitionCounter;//重复定时器,高级定时器专用
}
TIM_TimeBaseInitTypeDef;

今天就先整理到这里,明后两天再整理500ms的定时实例

猜你喜欢

转载自blog.csdn.net/weixin_41679822/article/details/100182868