stm32 机械周期_stm32定时器周期计算

stm32定时器时间计算

stm32 定时器时间计算

STM32 定时器的工作原理 STM32 之所以能够实现定时,是单片机内部在计 数脉冲(来自晶振) T=1/F (F 为频率) 例如:我们以 51 单片机举例,假设单片机搭配 12MHz 的晶振,由于 51 单片机是 12 分频 (即 1 个机器周期有 12 个时钟周期),则单片机的最小定时时间为 1 2 MHz / 2 = 1 MHz Tt = 1 / 1 MHz = 1 us 最小定时时间 T=1/1MHz=1us 51 单片机定时器: 方式 0 13 位最大定时时间间隔 2 =8.192ms 方式 1 16 位最大定时时间间隔 2 =65.536ms 方式 2 8 位最大定时时间间隔 2 =256us 由此我们知道对于一个定时器而言要做到精确定时需要关注 2 个内容 1、分频器(分频比) 2、定时计数器的值

STM32 定时器的时钟 CK_CNT 表示定时器工作频率 TIMX_PSC 表示分频系数 则定时器的工作频率计算公式为 CK_CNT=定时器时钟/( TIMx_PSC+1) 由此我们可得到 STM32 单片机 1 个时钟周期 为:T=1/ CK_CNT 例如普通定时器模块的时钟为 72MH2,分频比位 7199,那么我们想要得到一个 1 秒钟的 定时,定时计数器的值需要设定为 》 TImx arr = 1 0 0 0 0

因为 72000000/7200=10KHz 时钟周期 T=1/10KHz=100us100us10000=1S 结论:分频比 7199 定时计数器的值 10000 注意两点: (1)TIMx(1-8),在库设置默认的情况下,都是 72M 的时钟; (2)TIM_TimeBaseStructure.TIM_RepetitionCounter=0; 是重复计数,就是重复溢出多少次才给你来一个溢出中断, 它对应的寄存器叫 TIM1 RCR. 如果这个值不配置,上电的时候寄存器值可能随机的,本来 1 秒中断一次,可能变成 N 秒 中断一次,让计算量变大。 stm32 定时器时间计算系统时钟是 72Mhz,TIM1 是由 PCLK2 (72MHz)得到,TIM2-7 是由 PCLK1 得到 关键是设定 时钟预分频数,自动重装载寄存器周期的值 /*每 1 秒发生一次更新事件(进入中断服务程序)。RCC_Config

2019-08-07

883人浏览

stm32定时器频率计算

1. 时钟频率的关系: 挂在 APB1 和 APB2 的时钟频率—> APB1 和 APB2 分频给定时器,APB1 最大 72M,APB2 最大 36M(即不分频的状态)—> TIM 基定时分频,如果分频不为 1,硬件自动 2 倍频,即最大 TIM 的基频率为 72M 和 36M (2 分频再 2 倍频互为抵消)。—> 基定时再分频, (分频值即为 PSC 里的值)即为参考频率 OCREF 2. 时钟通道之间关系: OCREF 的输出作为参考,其中 ARR(预装载寄存器)里的值作为参考值,到达这个值以后 时钟系统自动产生了一个更新事件,该时间产生后 CNT(当前计数寄存器)里的值清零, 如果启动了预装载,则 ARR 里的值会自动再设置。所以参考输出的计数值即为 ARR 里的 值。 实际运用到的计数通道以参考输出的频率计数,CCRX 里的值为计数值,计数值到了以后可 以产生事件或者中断。然后 CCRX 里的值不能超过 ARR 里的值,因为参考计时到了 ARR 里值的时候, CNT 寄存器清零, 重新开始计时。 运用到的计数器计数到达 CCR 里值的时候, 若要再计数必须重新填写 CCR,赋予一个超过上次的计数值(但仍然不能超过 ARR) ,定 时器继续计数,不然将一直等待到 ARR 值计数到,产生事件更新再次计数。

2015-07-02

9147人浏览

STM32 定时器 定时时间的计算

STM32 定时器 定时时间的计算

假设 系统时钟是 72Mhz, TIM1 是由 PCLK2 (72MHz) 得到, TIM2-7 是由 PCLK1 得到 关键是设定 时钟预分频数,自动重装载寄存器周期的值 /*每 1 秒发生一次更新事件(进入中断服务程序)。 RCC_Configuration()的 SystemInit()的 RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2 表明 TIM3CLK 为 72MHz。因此,每次进入中 断服务程序间隔时间为

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值