码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • STM32 定时器定时计算


    STM32 定时器定时计算

    • STM32 定时器频率
    • 例子
    • 公式
    • reference

    STM32 定时器频率

    在这里插入图片描述
    定时时间 = 定时器频率 / 倍频 /装载周期

      htim1.Init.Prescaler = 72-1;
      htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
      htim1.Init.Period = 1*1000*1000;
    
    • 1
    • 2
    • 3

    tim = 72x10^6 / (72-1)/ 110001000 = 1us

    根据定时器时钟的频率,比如时钟的频率是72MHZ,可以理解为一秒钟STM32会自己数72M次,预分频系数就是将频率分割,比如分频系数是72,则该时钟的频率会变成72MHZ/72=1MHZ,但是在设置的时候要注意,数值应该是72-1。假定分频系数是72-1,那么频率变成1MHZ,也就意味着STM32在一秒钟会数1M次,即1us数一次。好了,接下来就是确定预装载值,比如需要定时1ms,由于1ms=1us*1000,那么预装载值就是1000-1;如此类推,在预分频系数确定的情况下,定时的时长就由预装载值确定了。至于要把值减一的原因,估计是计数是从0开始,所以要减一。

    例子

    //对于71MHZ的频率,500ms中断一次,这两个参数设置如下:
    TIM_Prescaler=7199;   //预分频值
    TIM_Period=4999;    //下一个更新事件装入活动的自动重装载寄存器周期的值
    
       //分频7200,用72000000/7200=10000Hz
       //此时的周期就是1/10000=0.0001s
       //500ms=0.0001s*5000次
       //5000-1=4999次
       //即通过4999次系统的运行,就是500ms
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    公式

    对定时器周期公式的理解:

    T=(arr+1)*(PSC+1)/Tck  
    
    • 1

    其中TCK为时钟频率,PSC为时钟预分频系数,arr为自动重装载值。

    f=Tck/(psc+1)*(arr+1)
    
    • 1

    Tck/(psc+1)即为时钟频率,1/f为机器周期,乘以(arr+1)即可得出定时器周期。
    例子:TCK=72MHZ,psc=71.时钟周期=1us.(arr+1)值为多少,定时器周期就为多少毫秒。

    reference

    • 通用定时器中两个重要参数的设置心得(TIM_Prescaler、TIM_Period)
  • 相关阅读:
    Spire.PDF for .NET【文档操作】演示:更改 PDF 版本
    Ai项目十四:基于 LeNet5 的手写数字识别及训练
    我的世界1.19.2最终优化模组推荐:这60个优化模组让你的体验更好
    GPDB7-新特性-角色创建
    CornerNet-Lite训练自己的数据集
    计算机毕业设计 旅游出行指南系统 Vue+SpringBoot+MySQL
    [ECCV‘22] Poseur: Direct Human Pose Regression with Transformers
    这几个点让我买了Watch Ultra
    【毕业设计】基于大数据的招聘与租房分析可视化系统
    代码整洁之道
  • 原文地址:https://blog.csdn.net/liuqingsongmsdn2014/article/details/127984095
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号