STM32开发板学习笔记--通用定时器
时间:11-28
来源:互联网
点击:
定时器可以说是单片机最常用的内部资源,连续几天都在看STM32定时器的使用方法,看固件库使用手册看的头都大了,总算学会了基本的应用。
1、首先在void NVIC_Configuration(void)中开启中断:
NVIC_DeInit();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio rity = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
2、初始化定时器
void TIM_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_DeInit(TIM2);//复位TIM2定时器
TIM_TimeBaseStructure.TIM_Period = 1000; // 定时1毫秒
TIM_TimeBaseStructure.TIM_Prescaler = 71; // 分频
TIM_TimeBaseStructure.TIM_ClockDivision = 0;//TIM_CKD_div1; ; // 时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //计数方向向上计数
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_ClearFlag(TIM2, TIM_FLAG_Update);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM2, ENABLE);
}
这样每隔1ms就中断一次
中断程序写在 “stm32f10x_it.c”的 void TIM2_IRQHandler(void) 中。
在中断服务程序中的末尾一定要加上
TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update);//一定要加上这句,清除TIM2 的中断待处理位
1、首先在void NVIC_Configuration(void)中开启中断:
NVIC_DeInit();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
2、初始化定时器
void TIM_Configuration(void)
{
}
这样每隔1ms就中断一次
中断程序写在 “stm32f10x_it.c”的 void TIM2_IRQHandler(void) 中。
在中断服务程序中的末尾一定要加上
TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update);//一定要加上这句,清除TIM2 的中断待处理位
STM32开发板学习笔记通用定时 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)