定时器计时

本文介绍了如何使用cubemx配置STM32的定时器,包括选择内部时钟源,计算定时频率以达到1ms定时,设置递增计数模式并开启更新中断。在代码实现中,通过HAL库启动定时器并编写中断回调函数,实现每秒LED翻转的功能。
摘要由CSDN通过智能技术生成

一、cubemx配置:
定时器配置:
  1.配置为选择内部时钟源;
  2.配置定时器定时频率:
    F=时钟源频率/[(psc+1)(arr+1)]  = 1000hz  对应    1ms;        可以根据自己的需要配置


  3.默认递增计数模式;
  4.打开定时器更新中断:
    TIM1 update Interrupt;


二、代码编写:main.c
1.在主函数中启动定时器:
  HAL_TIM_Base_Start_IT(&htim1);
  //以中断方式启动定时器
2.编写中断回调函数://以计时1s为例
/* USER CODE BEGIN 4 */
  //首先定义一个计数变量cnt:
    uint16_t cnt=0;
  //定时器每1ms进入中断,所以在回调函数中编写操作
  void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
  {
    if(htim -> Instance == TIM1)
    {
      cnt++;//进入一次中断就自加1
      if(cnt == 1000)
      {
        cnt=0;
        //编写每隔一秒的操作;
            HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);//103C8T6上面自带的led 1s翻转
      }
    }
  }
/* USER CODE END 4 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值