![](https://b05.ickimg.com/202010/4be90afeb37c2984f4c96ac6e29080ce.png)
定时器是每一个芯片必备的外设,它的作用就如它的名字一样,是用来计时的。当然它不会直接告诉你具体的时间值,而是一个特定时间间隔的计数,通过这个数乘以时间间隔就是这段时间的长度。定时器在计时的基础上可以实现很多其他功能,比如定时中断、pwm输出、输入捕获、正交译码等等。
下面这张图是gd32vf103所有定时器的分类和功能汇总。
![](https://b02.ickimg.com/202010/07c02fd0813cb85e41660dd104785f02.png)
我会按照功能分别予以介绍,本文先介绍最基本的定时、计数功能,以定时器0为例。
###定时器计时配置步骤如下:
**1、打开定时器时钟源;
2、设置定时器时钟的预分频;
3、设置计数方向、对齐模式、时钟分频;
4、设置自动重载值和重复计数值;
5、触发软件更新事件更新寄存器的值;
6、使能更新中断,由于用到了中断,注意中断控制器的配置;
7、使能计数器;
8、编写中断服务程序**
###1、打开定时器时钟源
定时器的时钟源可以是内部的也可以是外部的,这里以内部时钟源为例。内部时钟源是CK_TIMER,通过时钟树我们可以看到定时器0的CK_TIMER是挂在APB2上的,第一步先打开它。
![](https://b03.ickimg.com/202010/b5afece69f7aff2901ab9d80f8f4f1c9.png)