O5-TIM定时器

一、TIM

二、定时器类型

1.高级定时器

2.通用定时器

3.基本定时器

三、定时中断基本结构

1.预分频器时序

在单片机中,时序是指各操作信号之间的时间关系,它规定了单片机执行指令、访问存储器以及进行输入输出操作等的时间顺序和时间间隔,就如同一场精心编排的舞蹈,每个动作都在特定的时间点上发生,以确保整个表演的协调和准确。

2.计数器时序

计数器无预装时序

计数器有预装时序

四、RCC时钟树

示例代码

void Timer_Init(void)
{
	//1.RCC开启时钟
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//TIM2使能
	
	//2.选择时基单元的时钟源
	TIM_InternalClockConfig(TIM2);//选择时钟源
	
	//3.配置时基单元,包括预分频器、自动重装器、计数模式
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
	TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;//1分频
	TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;//向上计数
	TIM_TimeBaseInitStruct.TIM_Period = 10000 - 1;
	TIM_TimeBaseInitStruct.TIM_Prescaler = 7200 - 1;
	TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;
	TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);
	
	TIM_ClearFlag(TIM2, TIM_FLAG_Update);//避免刚初始化完就进中断的问题
	
	//4.配置输出中断控制,允许更新中断输出到NVIC
	TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
	
	//5.配置NVIC,在NVIC中打开定时器中断的通道,并分配一个优先级
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	
	NVIC_InitTypeDef NVIC_InitStructure;
	NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
	NVIC_Init(&NVIC_InitStructure);
	
	//6.运行控制。模块配置完成后,使能一下计数器
	TIM_Cmd(TIM2, ENABLE);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值