GD32F4——定时器(TIMERx)

一、概述 定时器的主要功能是用来计时,时间到达之后可以产生中断,提醒计时时间到,然后可以在中断函数中去执行功能。 GD32F450ZGT6共14个定时器,分

一、概述

定时器的主要功能是用来计时,时间到达之后可以产生中断,提醒计时时间到,然后可以在中断函数中去执行功能。

GD32F450ZGT6共14个定时器,分别为

(1)高级定时器(TIMERx,x=0,7)

(2)通用定时器L0(TIMERx,x=1,2,3,4)

(3)通用定时器L1(TIMERx,x=8,11)

(4)通用定时器L2(TIMERx,x=9,10,12,13)

(5)基本定时器(TIMERx,x=5,6)

 二、基本定时器(TIMERx, x=5,6)

基本定时器包含一个无符号16位计数器,可以被用作通用定时器和为DAC提供时钟。

基本定时器可以配置产生DMA请求,TRGO触发连接到DAC。

bsp_timer5.h 

#ifndef BSP_TIMER5_H
#define BSP_TIMER5_H#include "gd32f4xx.h"
#include "bsp_led.h"void timer5_config(void);
void TIMER5_DAC_IRQHandler(void);#endif /* BSP_TIMER5_H */

bsp_timer5.c

#include "bsp_timer5.h"timer_parameter_struct timer5_initpara;void timer5_config(void)
{rcu_periph_clock_enable(RCU_TIMER5);rcu_timer_clock_prescaler_config(RCU_TIMER_PSC_MUL4);timer_deinit(TIMER5);timer5_initpara.alignedmode = TIMER_COUNTER_EDGE;timer5_initpara.clockdivision = TIMER_CKDIV_DIV1;timer5_initpara.counterdirection = TIMER_COUNTER_UP;timer5_initpara.period = 3999;timer5_initpara.prescaler = 49999;timer5_initpara.repetitioncounter = 0;timer_init(TIMER5, &timer5_initpara);nvic_irq_enable(TIMER5_DAC_IRQn, 3, 2);timer_interrupt_enable(TIMER5, TIMER_INT_UP);timer_enable(TIMER5);
}void TIMER5_DAC_IRQHandler(void)
{if(timer_interrupt_flag_get(TIMER5, TIMER_INT_UP) == SET){timer_interrupt_flag_clear(TIMER5, TIMER_INT_UP);LED1_TOGGLE;}
}

https://lckfb.com/docs/lckfb_lspi/#/017%E5%AE%9A%E6%97%B6%E5%99%A8%E7%81%AF%E9%97%AA%E7%83%81