• 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);

  • 相关阅读:
    排序8: 计数排序
    免费的 Docker 镜像仓库,无需注册登录
    Java的运行时数据区域
    基于网络的虚拟仪器测试系统
    java毕业设计毕业设计流程管理mybatis+源码+调试部署+系统+数据库+lw
    (十八)Spring6集成MyBatis3.5
    外包干了2个月,技术退步明显.......
    【无标题】
    【云原生布道系列】第二篇:云原生时代领域解决方案专家的价值
    hadoop01--Hadoop完全分布式集群搭建
  • 原文地址:https://blog.csdn.net/m0_38012497/article/details/128128038