GD32F4——定时器(TIMERx)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
一、概述
定时器的主要功能是用来计时时间到达之后可以产生中断提醒计时时间到然后可以在中断函数中去执行功能。
GD32F450ZGT6共14个定时器分别为
1高级定时器TIMERxx=0,7
2通用定时器L0TIMERxx=1,2,3,4
3通用定时器L1TIMERxx=8,11
4通用定时器L2TIMERxx=9,10,12,13
5基本定时器TIMERxx=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