STM32 定时器时间设定及计算最简单理解

您所在的位置:网站首页 怎样设定定时器闹钟时间长短 STM32 定时器时间设定及计算最简单理解

STM32 定时器时间设定及计算最简单理解

2024-07-14 02:45| 来源: 网络整理| 查看: 265

玩了一段时间STM32,没有经过系统学习,对这个定时器定时时间计算理解很懵懂! 如下面定时器初始化代码

void timer7_init(u16 clock,u16 Preiod)//void timer7_init(84,5000) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7,ENABLE); TIM_DeInit(TIM7); /*TIM_Period=自动装载值,TIM_Prescaler=预分频值*/ TIM_TimeBaseStructure.TIM_Period = Preiod - 1; //5000定时器预分频器 TIM_TimeBaseStructure.TIM_Prescaler = clock - 1; //84 预分频值 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //时钟频率不分频 /*TIM_CounterMode:定时器计数方式,可为向上计数、向下计数以及中心对齐模式*/ TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM7,&TIM_TimeBaseStructure); TIM_ClearFlag(TIM7,TIM_FLAG_Update); TIM_ITConfig(TIM7,TIM_IT_Update,ENABLE); TIM_Cmd(TIM7,ENABLE); }

TIM_Period=自动装载值 TIM_Prescaler=预分频值 定时时间计算: 定时时间=(TIM_Period)X(TIM_Prescaler)/Timer clocks(定时器时钟频率) 假如:TIM_Period=5000,TIM_Prescaler=84,Timer clocks=84Mhz (5000X84)/84=5000us=5ms 对定时器时间设定可以理解为: 假如你需要定时1MS,TIM_Period(自动装载值)设定为1000,也就是1000us, TIM_Prescaler(预分频值)设定与Timer clocks(定时器时钟频率)相同就行,比如 定时器时钟频率是84,TIM_Prescaler(预分频值)设定为84就行。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3