在STM32中我们对定时器的周期任务有一定的需求,但在使用过程中,需要将一些任务写到中断中,中断函数会看上去比较复杂,并且会有好多标志位。以流水灯为例,周期为1s。介绍一下我自己的一种方法。

首先创建下面这个TimCycleTaskTypedef结构体,里面的参数有Cycle,time,Achieve_Flag,void (*Task)(void),他们分别Cycle是定时器周期次数,time为现在中断跳入的次数,Achieve_Flag为一个周期完成标志位,void (*Task)(void)为任务指针函数。

然后,我们需要创建void TIMTask(TimCycleTaskTypedef *timcycletasktypedef)函数,该函数用于定时器任务的调用,主要用于计数,函数如下

基本需要的函数已经建立,现在我们需要编写的就是流水灯任务结构体创建和流水灯的任务函数创建,具体如下

最后就是实现了,定时器初始化函数在这个不在编写

定时器中断函数如下:

然后,我们需要初始化Sys_Led.Clyce这个参数,这个参数的计算方式是需要完成发任务周期时间除以定时器周期,我这个开的定时器周期为10ms,流水灯任务的周期为1s,故Sys_Led.Cycle=100,这个值的初始化,我们放在主循环之前,然后我们在主循环中调用Sys_Led.Task();就可以了。

STM32定时器周期任务函数编写相关推荐

  1. 基于野火stm32指南者的中断函数编写过程总结

    本文编写了一个按键中断,当按键按下时触发中断GPIO灯翻转. 1.创建文档 创建一个exti文件并在下属目录中创建bsp_exti.h和bsp_exti.c的头文件并添加到工程中.用于存放于中断有关的 ...

  2. STM32 定时器 周期 频率 时间 计算

    一:周期 时间 公式:T(溢出时间)=(ARR+1)*(PSC+1)/Tclk  ARR:自动重装载值 PSC:预分频系数 TCLK:时钟频率 例如:Tclk=72MHz ARR=719 PSC=99 ...

  3. STM32定时器实现5秒周期串口通信,2秒LED灯闪烁

    文章目录 前言 一.定时器Timer 1.定时器定义 2.定时器分类 3.计数器模式 4.时钟产生器和时基单元 5.工作原理 二.实验步骤 1.用STM32CubeMx创建项目 1.1 创建项目 1. ...

  4. stm32 机械周期_stm32定时器周期计算

    stm32定时器时间计算 stm32 定时器时间计算 STM32 定时器的工作原理 STM32 之所以能够实现定时,是单片机内部在计 数脉冲(来自晶振) T=1/F (F 为频率) 例如:我们以 51 ...

  5. STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期

    STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期 目录 STM32CubeMX | 使用STM32定时器的PWM输入模式测量脉冲宽度和周期 1.介绍 2.STM32C ...

  6. 关于stm32定时器定时周期计算

    1.TIMx(1-8),在库设置默认的情况下,都是72M的时钟: 名为TIMx的有八个,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在 APB1总线上.其中TIM1&TI ...

  7. stm32定时器中断的配置步骤

    stm32定时器中断的配置步骤 1>TIM3 时钟使能 位于低速的APB1总线上(注意:高级定时器是在高速的APB2总线上): RCC_APB1PeriphClockCmd(RCC_APB1Pe ...

  8. 嵌入式作业STM32定时器实现串口通信及LED灯闪烁

    目录 前言 一.什么是定时器 1.定时器与计数器 2. 定时器有什么用 3. 定时器的原理 4.时钟产生器和时基单元 二.用STM32CubeMx创建项目 1. 创建项目 2.配置RCC和SYS 3. ...

  9. stm32定时器实验

    目录 1.定时器简介 2.软件设计 3.代码 main timer.c timer.h 1.定时器简介 stm32定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波 形(输出比较和 P ...

  10. STM32 定时器详解

    STM32 定时器详解 吃了一个猛亏,自己理解花了大半天时间,结果一看代码发现巨简单 算了,把自己理解的放上来吧 目录 STM32 定时器详解 前言 一.定时器种类和区分 二.时钟源 三.计数过程 3 ...

最新文章

  1. 中班机器人上课视频_中班机器人律动公开课
  2. JsonCpp的简单使用方法
  3. Async Mode: Future使用
  4. VTK:可视化之LegendScaleActor
  5. P5283-[十二省联考2019]异或粽子【可持久化Trie,堆】
  6. drawforeground只有鼠标事件进入才刷新_罗技各系鼠标测评(2020年12月更新)
  7. 冲刺第一天 11.23 FRI
  8. 临时邮箱获取验证信息
  9. 计算广告学涉及的学科与技术
  10. win的反义词_小学英语常见的英语单词反义词大汇总,一定要让孩子掌握!
  11. 分层图解决的一些最短路问题
  12. 明源软件诚聘.NET软件开发工程师
  13. C/C++去除行末空格
  14. 前后端分离时ajax发送请求时后端能接送,但是前端的response为空时
  15. linux与手机ssh连接,linux之间连接—使用SSH
  16. r语言报错|Error in plot.window(...) : ‘xlim‘值不能是无限的
  17. win10自动添加打印机设备
  18. bs4 Beautiful Soup详解
  19. Teamcenter FMS
  20. Linux下cpu和绑核

热门文章

  1. vbox win10 分辨率_告诉你win10系统设置屏幕分辨率的两种方法
  2. wps画流程图交叉弧形_word流程图-WPS绘制流程图的正确打开方式,超级简单
  3. Python批量化实现SAR图像的海陆分割
  4. pos机Project v1.1
  5. 计算机密码怎么重置,电脑忘记密码了怎么重置密码
  6. 随便说说,中国开发人员的不同层次和一些思考。
  7. 桩身弹性压缩计算公式_桩身弹性压缩量计算
  8. Andriod获取本机ip地址
  9. 织梦DedeCMS列表页给推荐的文章添加推荐特荐图标
  10. win10系统下mysql5.7初始化失败怎么办?