码农知识堂 - 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)
  • 相关阅读:
    项目规划得心应手:Plane 助你打造高效能团队 | 开源日报 No.48
    iOS动态库和静态库的运用
    10.22 校招 实习 内推 面经
    【已解决】spring-boot项目使用maven打包时出现BOOT-INF文件夹的问题
    【翻译】Domain Enhanced Arbitrary Image Style Transfer via Contrastive Learning
    【数字逻辑】——逻辑函数及其简化(学习笔记)
    告警平台设计方案
    【微信小程序】列表渲染wx:for
    个人防护设备视觉检测技术方案与思路探讨: Computer Version based PPE detection
    批量插入优化
  • 原文地址: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号