CH32库函数学习——CH32F207定时器中断(6)


一、CH32F207VCT6定时器

通用定时器模块包含一个 16 位可自动重装的定时器(TIM2、TIM3、TIM4 和 TIM5),用于测量脉
冲宽度或者产生特定频率的脉冲、PWM 波等。可用于自动化控制、电源等领域。

二、定时器时钟源

1.时钟模式

定时器的时钟源有四种可选,分别为一下四种模式。

  • 编码器模式
  • 外部时钟模式1
  • 外部时钟模式2
  • 内部时钟模式

2.内部时钟模式

对于定时器2,3,4,5,6,7挂在APB1总线下如果APB1预分频系数为1那么定时器时钟为APB1时钟的1倍,如果预分频不为1则定时器时钟为APB1的2倍。
对于定时器1,8,9,10 挂在APB2总线下如果APB2预分频系数为1那么定时器时钟为APB2时钟的1倍,如果预分频不为1则定时器时钟为APB2的2倍。
SYSCLK=96M
AHB时钟=96M
APB1时钟=48M
所以APB1的分频系数=AHB/APB1时钟=2所以,通用定时器时钟CK_INT=2*48M=96M。

3.计数模式

定时器计数模式主要有3种,分别为向上计数模式,向下计数模式,中间计数模式
向上计数模式:从0开始计数计数到自动重装载值后计数器会发生溢出,将会产生中断与事件。
向下计数模式:从自动重装载值开始0计数当计数到0时后计数器会发生向下溢出,将会产生中断与事件
中间计数模式:从0开始计数到自动计数装载值字计数到0,将会在向上溢出时产生事件与中断,在向下溢出发生事件中断,中间计数模式只会在从0计数到自动重装载值产生中断。

三、定时器配置

使能定时器外设时钟
初始化定时器
使能定时器中断
初始化NVIC
编写定时器中断服务函数(需要手动清除标志位)

void Timer3_Int_Init(u16 arr,u16 psc)
{
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;   //定义结构体名字
	
	NVIC_InitTypeDef NVIC_InitStructure;           		 //定义结构体名字
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);  //使能定时器时钟
	
	TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;      //定时其分频系数
	TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;  //模式选择向上计数
	TIM_TimeBaseInitStructure.TIM_Period=arr;                      //重装载
	TIM_TimeBaseInitStructure.TIM_Prescaler=psc;                   //预分频   
	
	TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);             //定时器基础功能初始化
	
	TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);                       //使能定时器更新中断
	
	NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;                  //中断通道
	NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;                  //通道使能
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;        //先优先级
	NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;               //从优先级
	 
	NVIC_Init(&NVIC_InitStructure);                                //中断初始化
	TIM_Cmd(TIM3,ENABLE);                                          //使能定时器
	
}

重要函数

TIM_GetITStatus()//获取中断标志位
TIM_ClearITPendingBit()//清除中断标志位
TIM_ITConfig(); //使能定时器中断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咕咕鸟bird

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值