码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • STM32f767之通用定时器


    一,通用定时器基本介绍

     

     

    二,配置相关项

    1,时钟源。       

     
     一般我们选择内部时钟,TIM3通过APB1得到。

    2,主从模式和触发源。

            用到的比较少,暂时不考虑,选disable。

    3,输出通道。

                  如果需要输入捕获或PWM输出等功能,映射到GPIO引脚,开启相应功能,后面还有一些参数设置。我这里只做内部定时用,所以先禁止。

            

      

    三,参数设置,"Parameter Settings"。

    使能内部时钟之后的参数设置

    Prtscaler (定时器分频系数)  : 7199  (将定时器时钟分频,做计数的频率)

    Counter Mode(计数模式)    Up(向上计数模式)                    

    Counter Period(自动重装载值) :    4999     (到达此值,重新计数)

    CKD(时钟分频因子) :       No Division 不分频 

    选项:  可以选择二分频和四分频                         

    auto-reload-preload(自动重装载)  :    Enable 使能

    TRGO Parameters    触发输出 (TRGO)               不使能    与本节无关,之后做详细介绍 

    TRGO:    定时器的触发信号输出  在定时器的定时时间到达的时候输出一个信号(如:定时器更新产生TRGO信号来触发ADC的同步转换,) 

     参考来源:

    (2条消息) STM32cubeIDE学习汇总(三)----利用定时器实现定时取反LED 控制亮灭_辽G.默语的博客-CSDN博客_cubeide 定时器

     

    使能中断

    三,应用实例

              定时500ms,触发中断,重新计数

    1,确定定时器的时钟频率

    2,根据公式求计时时间。

    arr 为自动重装载值  

    psc为定时器分频系数

     

     Tout = (4999+1)*(4788+1)/(48000000)  =  0.5     单位 s

    四,程序

    1,设置好以后,自动生成初始化代码MX_TIM3_Init()和中断void TIM3_IRQHandler(void)函数

    位置分别如下

    2, 在main.c中,添加中断调用函数

    1. //定时�?????3中断服务函数调用
    2. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    3. {
    4. if(htim==(&htim3))
    5. {
    6. timeout++;
    7. LED0_Toggle;
    8. }
    9. }

    3,使能定时器中断

    在main.c中添加,注意添加的位置,在用户区添加,不然会覆盖掉

    HAL_TIM_Base_Start_IT(&htim3); //使能定时器3和定时器3更新中断:TIM_IT_UPDATE

     4,使用,进行计时

    1. __HAL_TIM_SET_COUNTER(&htim3,0);//重设TIM3定时器的计数器�??
    2. timeout=0;
    3. delay_ms(100);
    4. time=__HAL_TIM_GET_COUNTER(&htim3)+(uint32_t)timeout*50000;//计算�????用时�????
    5. printf("time = %0.3fms\r\n",((float)time*10)/1000);

  • 相关阅读:
    ML/DL2022面试必备500知识点-《机器和深度学习纲要》免费分享
    复合索引abc,查询的时候查c a和ac都能用到索引吗
    Mach-O详解(一) - 破题
    YOLOv8改进有效涨点专栏目录——包含backbone、head、neck和损失函数上百余种改进技巧
    网络安全设备默认密码
    20231108在Ubuntu22.04下编译安装cmake-3.27.7.tar.gz
    MYSQL表的连接方式
    为什么要做数据可视化
    学习java之前端知识掌握Day004
    工程代码实践简单总结
  • 原文地址:https://blog.csdn.net/m0_38012497/article/details/128128038
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号