0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

定时器的基本操作

CHANBAEK 来源:电子爱好者 作者:LinuxARM 2023-01-19 09:13 次阅读

第一步:

具体配置如下图:激活需要使用到的外设定时器,当系统时钟频率为64MHz时,我们希望1MS发生中断一次;就可以把时钟的预分频系数设置为64-1;计数周期设置为1000-1;计数方式为 Up 向上计数,此时得到的中断频率为:64,000,000 /64 /1000 = 1MS = 1Khz ;

Dingtalk_20221206154648.jpg

第二步:

可以根据自身需要在NVIC 中断控制器中配置中断响应优先级。

Dingtalk_20221206154648.jpg

第三步:

代码分析:

先看TIM7的初始化函数:static void MX_TIM7_Init(void)




static void MX_TIM7_Init(void)
{


  /* USER CODE BEGIN TIM7_Init 0 */


  /* USER CODE END TIM7_Init 0 */


  TIM_MasterConfigTypeDef sMasterConfig = {0};


  /* USER CODE BEGIN TIM7_Init 1 */


  /* USER CODE END TIM7_Init 1 */
  htim7.Instance = TIM7;
  htim7.Init.Prescaler = 64-1;
  htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim7.Init.Period = 1000-1;
  htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  if (HAL_TIM_Base_Init(&htim7) != HAL_OK)
  {
    Error_Handler();
  }
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN TIM7_Init 2 */

  
   //在这这里添加这行代码,意思是初始化完成便开启定时器中断计数
    HAL_TIM_Base_Start_IT(&htim7);   
    
    
  /* USER CODE END TIM7_Init 2 */
}
/* USER CODE BEGIN 4 */


//在BEGIN 4 中添加定时器中断服务函数


void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  if (htim->Instance == htim7.Instance) //如果是TIM7响应进来的中断
  {
    MS ++;  //前面配置中断更新时间为1MS,那么这里进来一次MS加一次
    if(MS == 1000)  //当MS加到1000时,即1S
    {
      HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);  //即1S LED翻转一次
      MS =0;  //MS用完后记得清0
    }
  }
}


/* USER CODE END 4 */

如果能理解到这里,恭喜你已经学会了定时器的基本操作!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112064
  • 函数
    +关注

    关注

    3

    文章

    3911

    浏览量

    61313
  • 代码
    +关注

    关注

    30

    文章

    4557

    浏览量

    66834
收藏 人收藏

    评论

    相关推荐

    MM32 定时器操作

    实现同步功能。 所有 TIMx 定时器在内部相连,用于定时器同步或链接。当一个定时器处于主模式时,它可以对另一个处于从模式的定时器的计数
    发表于 01-04 16:56

    如何计算PIC16F67中定时器操作的时间?

    我在PIC16F67中使用定时器操作。我不知道该怎么计算时间。所以帮我计算一下这个IC的时间。以及如何编写相同的程序。
    发表于 10-30 06:13

    怎么在VxWorks下实现异步通用定时器的设计?

    本文设计了基于看门狗机制的异步通用定时器,并根据实际需要设计了周期性定时和一次性定时两种定时器。异步是指定时器运行于任务中,对用户没有任何限
    发表于 04-28 06:33

    stm32进行定时器操作的步骤

    进来。在进行定时器操作时,一般按如下步骤来进行: 1、打开相关外设的时钟。以定时器TIM3为例,由stm32的时钟树可以看到,TIM3时钟挂接在APB1上面,所以打开TIM3时钟时使用RC
    发表于 08-13 06:16

    软件定时器的特点和原理

    本文介绍了软件定时器的特点和原理,并从时钟节拍,数据结构,定时器操作等角度分析,实现了基于STM32的软件定时器,该软件定时器具有两种模式:
    发表于 08-19 08:29

    89C52中断和定时器操作步骤

    文章目录一、中断1.1 基本概念1.2 代码和实验部分二、定时器一、中断1.1 基本概念其实中断的概念很好理解:试想一下你正在教室里面搞单片机(这相当于与CPU正在执行主程序)这时,防空警报响了(一
    发表于 12-02 06:42

    LabVIEW编程LabVIEW开发高级数据采集技术 计数定时器操作 例程与相关资料

    LabVIEW编程LabVIEW开发高级数据采集技术 计数定时器操作 例程与相关资料典型的多功能DAQ设备只有2个板载计数,而智能DAQ则能在各条数字线上运行计数
    发表于 01-14 20:33

    STM32单片机的基本定时器如何操作以及编程呢

    STM32F1系列的产品,除了互联网产品外,工作8个,3种定时器,其中一种就是基本定时器。那么STM32单片机的基本定时器如何操作以及编程呢?下面我们就来详细的了解一下STM32F1系
    发表于 01-26 06:46

    RT-Thread提供了怎样的定时器操作函数以及如何使用它们呢

    时钟节拍任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如延时、线程的时间片轮转调度以及定时器超时等。时钟节拍(OS Tick)是操作系统中最小的时间单位。时钟节拍是特定
    发表于 04-02 11:41

    【CW32饭盒派开发板试用体验】+定时器操作初探讨

    */ } 定时器的实现,将有助我们后面程序功能的实现。本次定时器操作初探讨在这里就结束了,有兴趣的小伙伴或者 想深入研究的小伙伴,可以多看看官方的参考代码,实际动手去调试。发现问题,然后解决问题,如此,才能进步。
    发表于 06-10 22:46

    看门狗定时器的设计、工作原理及看门狗定时器操作

    看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始倒计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数。如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。
    发表于 05-23 09:14 7103次阅读
    看门狗<b class='flag-5'>定时器</b>的设计、工作原理及看门狗<b class='flag-5'>定时器</b>的<b class='flag-5'>操作</b>

    看门狗定时器的原理及操作解读

    在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。而T1的中断正常与否我们再由T0定时中断子程序来监视。这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。
    的头像 发表于 11-28 10:45 2.2w次阅读

    介绍关于PIC16F161X角度定时器操作演示

    PIC16F161X角度定时器演示
    的头像 发表于 07-10 04:17 3773次阅读

    【单片机技术】—— 89C52中断和定时器操作1

    文章目录一、中断1.1 基本概念1.2 代码和实验部分二、定时器一、中断1.1 基本概念其实中断的概念很好理解:试想一下你正在教室里面搞单片机(这相当于与CPU正在执行主程序)这时,防空警报响了
    发表于 11-23 17:06 11次下载
    【单片机技术】—— 89C52中断和<b class='flag-5'>定时器</b><b class='flag-5'>操作</b>1

    CW32定时器操作讲解——输入捕获

    CW32定时器操作讲解——输入捕获
    的头像 发表于 09-27 16:06 515次阅读
    CW32<b class='flag-5'>定时器</b><b class='flag-5'>操作</b>讲解——输入捕获