stm32第二天之基本定时器

学习定时器,需要用到定时器的结构体定义、NVIC结构体定义、时钟、中断映射选择、定时器使能命令,定时器中断函数。步骤如下:

1、建立定时器的.c文件和.h文件

2、打开定时器的时钟

代码变量RCC_APB1Periph_TIM2中的2根据你自己选择的定时器进行选择数字,我用的是2选择就是2

c 复制代码
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

3、选择时基单元的时钟我的是Timer2

c 复制代码
TIM_InternalClockConfig(TIM2);

4、配置时基单元结构体,第一个是否需要进行分频,第二触发方式,第三个是重载数,第四个预分频器值,第五个重复计数器

c 复制代码
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitInitStructure;
	TIM_TimeBaseInitInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
	TIM_TimeBaseInitInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
	TIM_TimeBaseInitInitStructure.TIM_Period=10000-1;
	TIM_TimeBaseInitInitStructure.TIM_Prescaler=7200-1;
	TIM_TimeBaseInitInitStructure.TIM_RepetitionCounter=0;
	TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitInitStructure);

5、使能中断,选择定时器,触发方式,

c 复制代码
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);

6、配置NVIC,选择NVIC,中断优先级分组,结构体类型声明,配置中断通道,使能命令,抢占优先级,子优先级。

c 复制代码
		NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
		NVIC_InitTypeDef NVIC_InitStructer;
		NVIC_InitStructer.NVIC_IRQChannel=TIM2_IRQn;
		NVIC_InitStructer.NVIC_IRQChannelCmd=ENABLE;
		NVIC_InitStructer.NVIC_IRQChannelPreemptionPriority=2;
		NVIC_InitStructer.NVIC_IRQChannelSubPriority=1;
		NVIC_Init(&NVIC_InitStructer);

7、启动定时器

c 复制代码
TIM_Cmd(TIM2,ENABLE);

8、定义一个TIM的中断函数去(这个启动文件找如图所示)

c 复制代码
void TIM2_IRQHandler(void)
{
	if (TIM_GetITStatus(TIM2,TIM_IT_Update)==SET)
			TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
}
相关推荐
清风66666612 小时前
基于单片机的电加热炉智能温度与液位PID控制系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业
一路往蓝-Anbo12 小时前
第五篇:硬件接口的生死劫 —— GPIO 唤醒与测量陷阱
c语言·驱动开发·stm32·单片机·嵌入式硬件
逑之13 小时前
C语言笔记16:文件操作
c语言·笔记·单片机
2401_8633261114 小时前
基于单片机智能光控路灯设计
单片机·嵌入式硬件
清风66666614 小时前
基于单片机的球类比赛专用计分与暂停管理系统设计
单片机·嵌入式硬件·毕业设计·课程设计
Y1rong14 小时前
STM32之时钟
stm32·单片机·嵌入式硬件
yuanmenghao15 小时前
自动驾驶中间件iceoryx - 同步与通知机制(二)
开发语言·单片机·中间件·自动驾驶·信息与通信
斌蔚司李15 小时前
Windows 电源高级选项
windows·stm32·单片机
钿驰科技15 小时前
TC-BL2840驱动板在3D打印美甲仪无刷电机的应用
单片机·嵌入式硬件
llilian_1616 小时前
相位差测量仪 高精度相位计相位差测量仪的应用 相位计
大数据·人工智能·功能测试·单片机