1、STM32f107定时器应用/* 文件名称: STM32f107 T1定时器应用* 功能描述: * 参 数: None* 返 回 值: None* 作 者: 汪仁海* 日 期: 2012年2月17日*-* 修 改 人:* 日 期:*-*/#include main.hint time1_NUM;/*函数: void Timer1_Configuration(void)功能: TIM1 配置参数: 无返回: 无定时计算:(1 /(72 / (36 - 1 + 1) * 2000 us = 1000us = 1ms*/void Timer1_Configuration(void) TIM_Time
2、BaseInitTypeDef TIM_TimeBaseStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); /打开TIM1定时器的时钟 TIM_DeInit(TIM1); /TIMx寄存器重设为缺省值 TIM_TimeBaseStructure.TIM_Period = 200; /自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler=36 - 1; /TIMx时钟频率除数的预分频值 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CK
3、D_DIV1; /采样分频 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /向上计数模式 TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); /清中断,以免一启用中断后立即产生中断 TIM_ClearFlag(TIM1, TIM_FLAG_Update); TIM_ARRPreloadConfig(TIM1, ENABLE); /允许自动重装载寄存器(ARR) TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE); /允许TIM1溢出中断 TIM_Cmd(
4、TIM1, ENABLE); /TIM1开启时钟 time1_NUM=0;/*函数: void TIM1_IRQHandler(void)功能: TIM1中断处理函数参数: 无返回: 无说明:1ms中断1次*/void TIM1_UP_IRQHandler(void) if(TIM_GetITStatus(TIM1,TIM_IT_Update)!=RESET) TIM_ClearITPendingBit(TIM1,TIM_IT_Update); /清除中断标志 if(time1_NUM=900) / time1_NUM+; else time1_NUM=0; /Uart1_PutChar(0x
5、fa); /Uart5_PutChar(0x11); /Uart3_PutChar(0xdd); / /* 文件名称: STM32f107 T2定时器应用* 功能描述: * 参 数: None* 返 回 值: None* 作 者: 汪仁海* 日 期: 2012年2月17日*-* 修 改 人:* 日 期:*-*/#include main.hint time2_NUM;/*函数: void Timer2_Configuration(void)功能: TIM2 配置参数: 无返回: 无定时计算:(1 /(72 / (36 - 1 + 1) * 2000 us = 1000us = 1ms*/voi
6、d Timer2_Configuration(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); /打开TIM2定时器的时钟 TIM_DeInit(TIM2); /TIMx寄存器重设为缺省值 TIM_TimeBaseStructure.TIM_Period = 2000; /自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler=36 - 1; /TIMx时钟频率除数的预分频值 TIM_Time
7、BaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; /采样分频 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /向上计数模式 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); /清中断,以免一启用中断后立即产生中断 /TIM_ClearFlag(TIM2, TIM_FLAG_Update); TIM_ARRPreloadConfig(TIM2, ENABLE); /允许自动重装载寄存器(ARR) TIM_ITConfig(TIM2,TIM_
8、IT_Update,ENABLE); /允许TIM2溢出中断 TIM_Cmd(TIM2, ENABLE); /TIM2开启时钟 time2_NUM=0;/*函数: void TIM2_IRQHandler(void)功能: TIM2中断处理函数参数: 无返回: 无说明:1ms中断1次*/void TIM2_IRQHandler(void) if(TIM_GetITStatus(TIM2,TIM_IT_Update)!=RESET) TIM_ClearITPendingBit(TIM2,TIM_IT_Update); /清除中断标志 if(time2_NUM=80) / time2_NUM+;
9、else time2_NUM=0; /Uart5_PutChar(0x22); /Uart1_PutChar(2); / /* 文件名称: STM32f107 T3定时器应用* 功能描述: * 参 数: None* 返 回 值: None* 作 者: 汪仁海* 日 期: 2012年2月17日*-* 修 改 人:* 日 期:*-*/#include main.hint time3_NUM;/*函数: void Timer3_Configuration(void)功能: TIM3 配置参数: 无返回: 无定时计算:(1 /(72 / (36 - 1 + 1) * 2000 us = 1000us
10、= 1ms*/void Timer3_Configuration(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); /打开TIM3定时器的时钟 TIM_DeInit(TIM3); /TIMx寄存器重设为缺省值 TIM_TimeBaseStructure.TIM_Period = 2000; /自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler=36 - 1; /TIMx时钟频率除数的预分频
11、值 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; /采样分频 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /向上计数模式 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); /清中断,以免一启用中断后立即产生中断 /TIM_ClearFlag(TIM3, TIM_FLAG_Update); TIM_ARRPreloadConfig(TIM3, ENABLE); /允许自动重装载寄存器(ARR) TIM_ITConfig
12、(TIM3,TIM_IT_Update,ENABLE); /允许TIM3溢出中断 TIM_Cmd(TIM3, ENABLE); /TIM3开启时钟 time3_NUM=0; /*函数: void TIM2_IRQHandler(void)功能: TIM3中断处理函数参数: 无返回: 无说明:1ms中断1次*/void TIM3_IRQHandler(void) if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET) TIM_ClearITPendingBit(TIM3,TIM_IT_Update); /清除中断标志 if(time3_NUM=950) /
13、time3_NUM+; else time3_NUM=0; /Uart5_PutChar(0x33); /Uart1_PutChar(3); /* 文件名称: STM32f107 T4定时器应用* 功能描述: * 参 数: None* 返 回 值: None* 作 者: 汪仁海* 日 期: 2012年2月17日*-* 修 改 人:* 日 期:*-*/#include main.hint time4_NUM;/*函数: void Timer4_Configuration(void)功能: TIM4 配置参数: 无返回: 无定时计算:(1 /(72 / (36 - 1 + 1) * 2000 us
14、 = 1000us = 1ms*/void Timer4_Configuration(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); /打开TIM4定时器的时钟 TIM_DeInit(TIM4); /TIMx寄存器重设为缺省值 TIM_TimeBaseStructure.TIM_Period = 2000; /自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler=36 - 1; /TIMx
15、时钟频率除数的预分频值 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; /采样分频 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /向上计数模式 TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); /清中断,以免一启用中断后立即产生中断 TIM_ClearFlag(TIM4, TIM_FLAG_Update); TIM_ARRPreloadConfig(TIM4, ENABLE); /允许自动重装载寄存器(ARR) TIM
16、_ITConfig(TIM4,TIM_IT_Update,ENABLE); /允许TIM4溢出中断 TIM_Cmd(TIM4, ENABLE); /TIM4开启时钟 time4_NUM=0;/*函数: void TIM2_IRQHandler(void)功能: TIM4中断处理函数参数: 无返回: 无说明:1ms中断1次*/void TIM4_IRQHandler(void) if(TIM_GetITStatus(TIM4,TIM_IT_Update)!=RESET) TIM_ClearITPendingBit(TIM4,TIM_IT_Update); /清除中断标志 if(time4_NUM
17、=970) / time4_NUM+; else time4_NUM=0; /Uart5_PutChar(0x44); /Uart1_PutChar(4); /* 文件名称: STM32f107 T5定时器应用* 功能描述: * 参 数: None* 返 回 值: None* 作 者: 汪仁海* 日 期: 2012年2月17日*-* 修 改 人:* 日 期:*-*/#include main.hint time5_NUM;/*函数: void Timer5_Configuration(void)功能: TIM5 配置参数: 无返回: 无定时计算:(1 /(72 / (36 - 1 + 1) *
18、 2000 us = 1000us = 1ms*/void Timer5_Configuration(void) TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE); /打开TIM5定时器的时钟 TIM_DeInit(TIM5); /TIMx寄存器重设为缺省值 TIM_TimeBaseStructure.TIM_Period = 2000; /自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler=36 -
19、1; /TIMx时钟频率除数的预分频值 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; /采样分频 TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; /向上计数模式 TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure); /清中断,以免一启用中断后立即产生中断 TIM_ClearFlag(TIM5, TIM_FLAG_Update); TIM_ARRPreloadConfig(TIM5, ENABLE); /允许自动重装载寄存器(
20、ARR) TIM_ITConfig(TIM5,TIM_IT_Update,ENABLE); /允许TIM5溢出中断 TIM_Cmd(TIM5, ENABLE); /TIM5开启时钟 time5_NUM=0;/*函数: void TIM2_IRQHandler(void)功能: TIM5中断处理函数参数: 无返回: 无说明:1ms中断1次*/void TIM5_IRQHandler(void) if(TIM_GetITStatus(TIM5,TIM_IT_Update)!=RESET) TIM_ClearITPendingBit(TIM5,TIM_IT_Update); /清除中断标志 if(time5_NUM=990) /1000US time5_NUM+; else time5_NUM=0; /Uart1_PutChar(5); /Uart5_PutChar(0x55);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1