STM32f107定时器应用文档格式.docx

上传人:b****6 文档编号:19398209 上传时间:2023-01-05 格式:DOCX 页数:13 大小:15.89KB
下载 相关 举报
STM32f107定时器应用文档格式.docx_第1页
第1页 / 共13页
STM32f107定时器应用文档格式.docx_第2页
第2页 / 共13页
STM32f107定时器应用文档格式.docx_第3页
第3页 / 共13页
STM32f107定时器应用文档格式.docx_第4页
第4页 / 共13页
STM32f107定时器应用文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

STM32f107定时器应用文档格式.docx

《STM32f107定时器应用文档格式.docx》由会员分享,可在线阅读,更多相关《STM32f107定时器应用文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

STM32f107定时器应用文档格式.docx

main.h"

inttime1_NUM;

/*************************************************

函数:

voidTimer1_Configuration(void)

功能:

TIM1配置

参数:

返回:

定时计算:

(1/(72/(36-1+1)))*2000us=1000us=1ms

**************************************************/

voidTimer1_Configuration(void)

{

TIM_TimeBaseInitTypeDefTIM_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_CKD_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(TIM1,ENABLE);

//TIM1开启时钟

time1_NUM=0;

}

voidTIM1_IRQHandler(void)

TIM1中断处理函数

说明:

1ms中断1次

voidTIM1_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(0xfa);

//Uart5_PutChar(0x11);

//Uart3_PutChar(0xdd);

//

STM32f107T2定时器应用

inttime2_NUM;

voidTimer2_Configuration(void)

TIM2配置

voidTimer2_Configuration(void)

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

//打开TIM2定时器的时钟

TIM_DeInit(TIM2);

TIM_TimeBaseStructure.TIM_Period=2000;

TIM_TimeBaseInit(TIM2,&

//清中断,以免一启用中断后立即产生中断

//TIM_ClearFlag(TIM2,TIM_FLAG_Update);

TIM_ARRPreloadConfig(TIM2,ENABLE);

TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);

//允许TIM2溢出中断

TIM_Cmd(TIM2,ENABLE);

//TIM2开启时钟

time2_NUM=0;

voidTIM2_IRQHandler(void)

TIM2中断处理函数

voidTIM2_IRQHandler(void)

if(TIM_GetITStatus(TIM2,TIM_IT_Update)!

TIM_ClearITPendingBit(TIM2,TIM_IT_Update);

if(time2_NUM<

=80)//

time2_NUM++;

time2_NUM=0;

//Uart5_PutChar(0x22);

//Uart1_PutChar('

2'

);

//

STM32f107T3定时器应用

inttime3_NUM;

voidTimer3_Configuration(void)

TIM3配置

voidTimer3_Configuration(void)

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

//打开TIM3定时器的时钟

TIM_DeInit(TIM3);

TIM_TimeBaseInit(TIM3,&

//TIM_ClearFlag(TIM3,TIM_FLAG_Update);

TIM_ARRPreloadConfig(TIM3,ENABLE);

TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);

//允许TIM3溢出中断

TIM_Cmd(TIM3,ENABLE);

//TIM3开启时钟

time3_NUM=0;

/*************************************************

TIM3中断处理函数

voidTIM3_IRQHandler(void)

if(TIM_GetITStatus(TIM3,TIM_IT_Update)!

TIM_ClearITPendingBit(TIM3,TIM_IT_Update);

if(time3_NUM<

=950)//

time3_NUM++;

time3_NUM=0;

//Uart5_PutChar(0x33);

3'

STM32f107T4定时器应用

inttime4_NUM;

voidTimer4_Configuration(void)

TIM4配置

voidTimer4_Configuration(void)

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);

//打开TIM4定时器的时钟

TIM_DeInit(TIM4);

TIM_TimeBaseInit(TIM4,&

TIM_ClearFlag(TIM4,TIM_FLAG_Update);

TIM_ARRPreloadConfig(TIM4,ENABLE);

TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);

//允许TIM4溢出中断

TIM_Cmd(TIM4,ENABLE);

//TIM4开启时钟

time4_NUM=0;

TIM4中断处理函数

voidTIM4_IRQHandler(void)

if(TIM_GetITStatus(TIM4,TIM_IT_Update)!

TIM_ClearITPendingBit(TIM4,TIM_IT_Update);

if(time4_NUM<

=970)//

time4_NUM++;

time4_NUM=0;

//Uart5_PutChar(0x44);

4'

}

STM32f107T5定时器应用

inttime5_NUM;

voidTimer5_Configuration(void)

TIM5配置

voidTimer5_Configuration(void)

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);

//打开TIM5定时器的时钟

TIM_DeInit(TIM5);

TIM_TimeBaseInit(TIM5,&

TIM_ClearFlag(TIM5,TIM_FLAG_Update);

TIM_ARRPreloadConfig(TIM5,ENABLE);

TIM_ITConfig(TIM5,TIM_IT_Update,ENABLE);

//允许TIM5溢出中断

TIM_Cmd(TIM5,ENABLE);

//TIM5开启时钟

time5_NUM=0;

TIM5中断处理函数

voidTIM5_IRQHandler(void)

if(TIM_GetITStatus(TIM5,TIM_IT_Update)!

TIM_ClearITPendingBit(TIM5,TIM_IT_Update);

if(time5_NUM<

=990)//1000US

time5_NUM++;

time5_NUM=0;

5'

//Uart5_PutChar(0x55);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1