文章目录

  • 前言
  • 1.软件定时器概述
    • 一.软件定时器特性
  • 二、使用cubeMX生成软件定时器
  • 三、代码讲解
  • 总结

前言

本文主要带大家了解什么是软件定时器,并且带大家使用cubeMX配置软件定时器。

1.软件定时器概述

一.软件定时器特性

软件定时器就是一个闹钟当时间到了就执行相对应的任务或者代码。软件定时器是基于系统滴答中断的。在FreeRTOS中我们可以设置无数个软件定时器。
指定时间:启动定时器和运行回调函数,两者的间隔被称为定时器的周期
(period)。

指定类型定时器有两种类型:
1.一次性
这类定时器启动后,它的回调函数只会被调用一次;可以手工再次启动它,但是不会自动启动它。
2.自动加载定时器
这类定时器启动后,时间到之后它会自动启动它;这使得回调函数被周期性地调用。

二、使用cubeMX生成软件定时器

1.开启软件定时器的相应宏

2.添加软件定时器

3.设置软件定时器参数

1.Timer Name:定时器名字
2.CallBack:定时器回调函数名字
3.Type:定时器类型选择(周期性,一次性)

三、代码讲解

1.定时器相关宏修改
我们在这里需要将configTIMER_TASK_PRIORITY这个宏进行修改这个宏代表的是软件定时器的优先级,软件定时器优先级如果设置的太低将会导致软件定时器无法运行,所以要修改相应的宏。

/* Software timer definitions. */
#define configUSE_TIMERS                         1
#define configTIMER_TASK_PRIORITY                3//( 2 )
#define configTIMER_QUEUE_LENGTH                 10
#define configTIMER_TASK_STACK_DEPTH             256

2.创建定时器及开启软件定时器

/* Create the timer(s) */
/* definition and creation of myTimer01 */
osTimerDef(myTimer01, Callback01);
myTimer01Handle = osTimerCreate(osTimer(myTimer01), osTimerPeriodic, NULL);/* USER CODE BEGIN RTOS_TIMERS */
/* start timers, add new ones, ... */
/* USER CODE END RTOS_TIMERS */

下面代表的是选择定时器是一次性的还是周期性的

typedef enum  {osTimerOnce             =     0,       ///< one-shot timerosTimerPeriodic         =     1        ///< repeating timer
} os_timer_type;

软件定时器回调函数

/* Callback01 function */
void Callback01(void const * argument)
{/* USER CODE BEGIN Callback01 *//* USER CODE END Callback01 */
}

开启软件定时器

osTimerStart(myTimer01Handle,1000);//1000代表回调函数回调周期

总结

一般我们只会使用到硬件定时器,但是在硬件定时器不足的时候我们可以创建软件定时器来代替硬件定时器的使用。

STM32cubeMX配置FreeRTOS软件定时器相关推荐

  1. FreeRTOS 软件定时器使用

    FreeRTOS 的软件定时器工作模式有两种:单次触发 和 自动重载. 1. 主要功能函数介绍 官方API文档:FreeRTOS 软件定时器 API文档 最为常用的函数有: // 创建软件定时器,返回 ...

  2. FreeRTOS软件定时器 | FreeRTOS十三

    目录 说明: 一.定时器简介 1.1.定时器 1.2.软件定时器 1.3.硬件定时器 1.4.FreeRTOS软件定时器 1.5.软件定时器服务任务作用 1.6.软件定时器的命令队列 1.7.软件定时 ...

  3. FreeRTOS软件定时器 基于STM32

    文章目录 一·.软件定时器的基本概念 二.软件定时器应用场景 三.软件定时器的精度 四.软件定时器的运作机制 五.软件定时器函数接口讲解 1.软件定时器创建函数 xTimerCreate() 2.软件 ...

  4. FreeRTOS 软件定时器的使用

    FreeRTOS中加入了软件定时器这个功能组件,是一个可选的.不属于freeRTOS内核的功能,由定时器服务任务(其实就是一个定时器任务)来提供. 软件定时器是当设定一个定时时间,当达到设定的时间之后 ...

  5. freeRTOS — 软件定时器的使用

    freeRTOS中加入了软件定时器这个功能组件,是一个可选的.不属于freeRTOS内核的功能,由定时器服务(其实就是一个定时器任务)来提供. 软件定时器是当设定一个定时时间,当达到设定的时间之后就会 ...

  6. STM32CubeMX配置freertos配置任务(一)

    使用STM32CubeMX 配置Freertos 生成一个任务点亮LED stm32cubemx STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具, 允许用 ...

  7. FreeRTOS 软件定时器

    系统节拍配置宏 configTICK_RATE_HZ, 即1S能跳动多少下, 软件定时器的运作机制. FreeRTOS 采用两个定时器列表维护软件定时器, pxCurrentTimerList 与 p ...

  8. FreeRtos软件定时器复习

    一.基础概念 概念解析:定时器分为硬与软定,硬件定时器到达定时时间自动触发中断服务函数,使用软件定时器时,需要我们在创建软件定时器时指定时间到达后要调用的函数(也称超时函数/回调函数,为了统一,下文均 ...

  9. freeRtos学习笔记 (6)软件定时器

    freeRtos学习笔记 freeRtos软件定时器 软件定时器需要注意事项 软件定时器的精度基于时钟节拍,例如系统时钟节拍为10ms, 软件定时器定时时间必须是10ms的整数倍,因此软件定时器一般用 ...

最新文章

  1. 如何忽略Git中目录中的文件?
  2. XP支持4G以上物理内存的方法
  3. JAVA复习5(集合——ArrayList)
  4. AJAX与SQL Server(一)
  5. 10-11-根据文章标题搜索文章
  6. __builtin_expect提高运行效率
  7. 2011年12月1日学习内容总结
  8. python编程入门 适合于零基础朋友-Python不能帮你找到女朋友,却能让你成为有钱的单身狗。...
  9. 电脑教程从入门到精通_【电路仿真】视频教程资料包,proteus入门到精通+实例教程+软件,免费下载!...
  10. 通俗易懂的TextCNN
  11. Windows 11企业版虚拟机镜像官方版下载及安装
  12. icon图标在线生成教程(svg转icon)
  13. 探讨PHP实现站内搜索引擎的具体方法
  14. 中国脑计划颠覆性创新之路二,欧美脑计划存在重大缺陷
  15. 37岁转行JAVA真的很难
  16. python getcwd_Python3 os.getcwd() 方法
  17. 求一个乘法算式采用几进制
  18. Excel批量设置数字转化成“以文本形式存储的数字
  19. 第二类曲线、曲面积分计算公式
  20. 游戏服务器里怎么看在线人数,数据大佬统计服务器在线人数 来看看哪区最鬼...

热门文章

  1. 基于AM5728 DSP+ARM的智能电力巡检机器人设计
  2. 数据结构实验课:实验四、队列的实现及应用
  3. Zabbix5.2发布,由loT物联网和综合监控驱动!
  4. Flajolet-Martin算法及其应用
  5. 新微信公众号启用说明
  6. 美团外卖实时数仓建设实践
  7. 老曹眼中的研发管理二三事
  8. 如何用Word整合项目计划书的各部分?
  9. 谨此献给80年代出生的人[图]
  10. 帝国CMS7.5仿《D9下载站》软件应用下载网站源码