STM32F4基于CubeMX项目实战(3)--定时器中断实验

    在之前一篇文章中详细介绍了如何利用CubeMX以及相关代码完成串口的数据传输,今天我们进行学习如何利用STM32上带有的定时器去定时产生中断。

     本篇文章将略过创建工程文件的步骤,如果对如何使用CubeMX创建工程文件不清楚可以参照这篇文章STM32F429zit基于CubeMX的建立工程文件指南。

    本实验实现过程对于STM32F4系列以及STMF1系列通用。

    所使用的开发板为STM32F4-disc1板,使用HAL库函数进行编写。

 操作步骤:

      首先我们打开之前配置好的工程文件,接下来点开左边栏中的Timers,在这里我们使用定时器2的中断,因此在列表中点开TIM2,然后找到上方的Clock Source,如图所示选择外部时钟。接下来在下方的NVIC Setting中断设置中将TIM2的中断打开。

      接下来我们到时钟树页面看下,因为TIM2定时器的时钟源来源于APB1,因此在这里我们可以记下来设置的APB2定时器的时钟为90MHZ  

 

      然后在时钟页面中打开 Parameter Settings,在这里我们可以在下方看到Prescaler(PSC)和Counter Period(ARR),这两者共同决定了定时器的频率,公式如下:

       列如在这里我们设置PSC为179,ARR为19999,而时钟频率为180MHZ,两者相除结果为1hz也就是一周期为1s,因此我们可知前后触发中断的间隔时间为1s。

       然后打开工程文件,在右边的functions中我们可以找到stm32f4xx_hal_tim.c文件,如下图所示:

      在其中我们可以看到Start_IT函数和Stop_IT函数,这两者一个为开启定时器中断,另一个为关闭定时器中断。在这里我们在主函数中先打开定时器中断。

 

      然后中断会触发一个callback函数,一般在callback函数中进行所要执行的操作,如下图所示我们找到callback函数,可以看到他是一个__weak函数,也就是我们可以在其他文件中重新定义他。我们复制他的名字然后在main.c文件中重新编辑他的内部所执行的操作

      如下图所示我们在函数中先判断为哪个定时器触发的中断,如果为定时器2就使PG13和PG14(板子上带有的两个灯)的电平翻转。

     接下来将程序编译后下载到板子内,可以看到板子上的灯隔大约1S多时间后熄灭或亮起。实验成功。

     本人接触此方面时间较短,若有不足之处请多多包涵并指正,感谢。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值