STM32F051R8T6的通用定时器配置

发布者:InspiredDreamer最新更新时间:2016-07-28 来源: eefocus关键字:STM32F051R8T6  通用定时器配置 手机看文章 扫描二维码
随时随地手机看文章
将系统时钟24分频,计数频率为48MHz/24 = 2MHz,则计一个数的时间为0.5us。计满1000个数的时间为0.5ms。这就是TIM3的定时周期。

void TIM3_Configuration(void) //每0.5ms发生一次更新事件(进入中断服务程序).
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

TIM_DeInit(TIM3); //重新将Timer设置为缺省值
TIM_InternalClockConfig(TIM3); //采用内部时钟给TIM3提供时钟源
TIM_ARRPreloadConfig(TIM3, DISABLE); //禁止ARR预装载缓冲器 预装载寄存器的内容被立即传送到影子寄存器

TIM_TimeBaseStructure.TIM_Prescaler = 24-1; //预分频系数为24-1,这样计数器计数频率为48MHz/24 = 2MHz
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //设置计数器模式为向上计数模式
TIM_TimeBaseStructure.TIM_Period = 1000; //设置计数溢出大小,每计1000个数就产生一个更新事件
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //将配置应用到TIM3中

TIM_ClearFlag(TIM3, TIM_FLAG_Update); //清除溢出中断标志
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE); //使能TIM3的更新中断
TIM_Cmd(TIM3, ENABLE); //开启定时器3

//Enable the TIM3 Interrupt
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}

stm32f0xx_it.c文件中

//---------------------------------0.5ms中断一次---------------------------------------
void TIM3_IRQHandler(void)
{
if (TIM_GetITStatus(TIM3 TIM_IT_Update) != RESET)
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
//添加代码

}
}


关键字:STM32F051R8T6  通用定时器配置 引用地址:STM32F051R8T6的通用定时器配置

上一篇:STM32F107VCT6的通用定时器的输入捕获功能配置
下一篇:STM32F051R8T6的GPIO配置

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved