通过创建软件定时器实现500ms中断,执行x次后停止并删除定时器。
宏:

//RTOS系统节拍中断的频率。即一秒中断的次数,每次中断RTOS都会进行任务调度
#define configTICK_RATE_HZ                        (( TickType_t )1000)
//支持动态内存申请
#define configSUPPORT_DYNAMIC_ALLOCATION        1 //启用软件定时器
#define configUSE_TIMERS                            1

main.c

#include "AppTask.h"static void BSP_Init(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//优先级0-15LED_GPIO_Config();USART_Config();
}int main(void)
{BaseType_t xReturn  = pdPASS;BSP_Init();xReturn = xTaskCreate((TaskFunction_t) (AppCreate_Task),(const char*)    "AppCreate_Task",(uint16_t)   512, (void*)        NULL,(UBaseType_t)  1,(TaskHandle_t)    (&AppCreateTask_Handle));if(xReturn == pdPASS){printf("AppCreate_Task Create Succeed!\r\n");vTaskStartScheduler();//启动任务调度}else{printf("AppCreate_Task Create Fail!\r\n");}while(1);
}

AppTask.h

#ifndef _AppTask_H_
#define _AppTask_H_
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "semphr.h"
#include "event_groups.h"
#include "timers.h"
#include "bsp_led.h"
#include "bsp_usart.h"extern TaskHandle_t AppCreateTask_Handle;
extern void AppCreate_Task(void* parameter);#endif

AppTask.c**

#include "AppTask.h"TaskHandle_t AppCreateTask_Handle = NULL;
static TimerHandle_t Timer_Handle = NULL;static void Timer_Callback(void* parameter);
/*************************************** function:创建App任务函数* parameter:void** return:void* date:2022.3.21* note:* ***********************************/
void AppCreate_Task(void* parameter)
{taskENTER_CRITICAL();Timer_Handle = xTimerCreate((const char*)"Timer",\(TickType_t) 500,\(UBaseType_t) pdTRUE,\(void*) 1,\(TimerCallbackFunction_t) Timer_Callback);xTimerStart(Timer_Handle,0);vTaskDelete(AppCreateTask_Handle);taskEXIT_CRITICAL();
}static void Timer_Callback(void* parameter)
{static int i = 0;TickType_t tick_num2;LED1_TOGGLE;tick_num2 = xTaskGetTickCount();  /*  获取滴答定时器的计数值 */printf("Timer Run...%d\r\n",tick_num2);i++;if(i > 5){xTimerStop(Timer_Handle,0);xTimerDelete(Timer_Handle,0);printf("删除定时器");}
}

演示现象:

FreeRTOS使用软件定时器相关推荐

  1. FreeRTOS之软件定时器详解

    关注.星标公众号,直达精彩内容 来源:网络素材 整理:技术让梦想更伟大 | 李肖遥 定时器可以说是每个 MCU 都有的外设,有的 MCU 其定时器功能异常强大,比如提供 PWM.输入捕获等功能.但是最 ...

  2. STM32 FreeRTOS (三) 软件定时器

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

  3. 【FreeRTOS】软件定时器的使用

    ❤️作者主页:凉开水白菜 ❤️作者简介:共同学习,互相监督,热于分享,多加讨论,一起进步! ❤️专栏资料:https://pan.baidu.com/s/1nc1rfyLiMyw6ZhxiZ1Cumg ...

  4. FreeRTOS 软件定时器使用

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

  5. 【FreeRTOS】11 软件定时器

    定时器是MCU常用的外设,我们在学习各种单片机时必然会学习它的硬件定时器.但是,MCU自带的硬件定时器资源是有限的,而且一般会用在实时性要求很强的地方. 在freeRTOS中提供了软件定时器的功能,来 ...

  6. FreeRTOS软件定时器 基于STM32

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

  7. FreeRTOS学习六(软件定时器)

    软件定时器允许设置一段时间,当设置的时间到达之后就执行指定的功能函数,被定时器调用的这个功能函数叫做定时器的回调函数.回调函数的两次执行间隔叫做定时器的定时周期,简而言之,当定时器的定时周期到了以后就 ...

  8. FreeRtos软件定时器复习

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

  9. FreeRTOS记录(八、用软件定时器?还是硬件定时器?)

    FreeRTOS软件定时器,相对前面的内容来说,软件定时器还是比较简单的,我们简单测试一下 因为是简单介绍,所以原理和源码的分析不会那么详细,具体可以根据文中API查看源码 使用起来记住创建,启动,回 ...

最新文章

  1. Tails 3.13 发布,更新 Intel 微码,改进拼音输入法支持
  2. python随机排列图片_python 随机打乱 图片和对应的标签方法
  3. 【操作系统】进程间通信
  4. LA4234 Binary Clock(进制转换)
  5. hdu5492(2015合肥网络赛I题)
  6. 前端工程师笔试题(欢迎评论留言)
  7. ParameterizedTypeImpl
  8. [css] 简述下你理解的优雅降级和渐进增强
  9. bug宝典linux篇 LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory(转)
  10. Spring中自动装配
  11. 遗传算法学习及matlab代码
  12. C#【必备技能篇】注册dll+批量注册dll
  13. TMS320F280049C 串行通信接口Serial Communications Interface (SCI)之RS485通信(多摩川编码器)
  14. 自制力差的元凶及习惯的养成过程
  15. Matlab绘制图像(plot函数)
  16. 如何保存gif表情包里面的部分图片?
  17. flac转mp3教程flac怎么转mp3才能减小音质的丢失
  18. 从面试官的视角来提升面试者的必须具备的IT技能
  19. 【Linux】 常用命令
  20. AI视觉传感器作用和应用介绍

热门文章

  1. HomeBank-5.5.4-个人家庭记账分析软件(开源)
  2. NJU 2020 计算机拔尖(数学)测试 解题报告
  3. gwu计算机硕士排名,美国乔治华盛顿大学计算机专业排名 研究方向有哪些
  4. emc服务器装什么系统,EMC DD系统安装指南.pdf
  5. 局域网中的两台主机共享一台显示器
  6. zabbix的下载与配置
  7. 如何拥有一颗平常心?(KK记)
  8. 51单片机-串口通信
  9. 删除归档日志错误ORA-15028: ASM file '..' not dropped; currently being accessed
  10. python去掉文件名中的_normal,_abnor后缀