news 2026/5/1 10:00:26

FreeRTOS中的回调函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FreeRTOS中的回调函数

https://mp.weixin.qq.com/s/Q1awjcC572ukkRuAGXIRaAhttps://mp.weixin.qq.com/s/Q1awjcC572ukkRuAGXIRaA

FreeRTOS的软件定时器的核心机制是回调函数触发 当你调用xTimerStart()启动定时器时,系统会在指定时间后,自动调用你创建定时器时绑定的回调函数,例如:

// 创建定时器时,绑定回调函数 na_timer = xTimerCreate( "NA_Timer", // 定时器名称 pdMS_TO_TICKS(DEFAULT_NA_PERIOD * 1000), // 默认周期 pdTRUE, // 自动重载(周期触发) NULL, // 定时器ID NaTimerCallback // 绑定的回调函数 );

当定时器到期,FreeRTOS会自动调用CallBack函数 在这里介绍一个机制,就是FreeRTOS的事件驱动框架:FreeRTOS的Queue提供了任务到任务、任务到中断、中断到任务、中断到任务间的通讯机制。对于这些事件,可以定义如下枚举:

typedef enum{ TASK0_EVENT_0, TASK0_EVENT_1, TASK0_EVENT_2, ... }Task0EventType;

我们可能会这样做逻辑执行:

typedef struct Task0Event_t{ Task0EventType type; xxx; }Task0Event; static void ChangeState(Task0Event* event) { switch(event->type) { case TASK0_EVENT_0: ... break; case TASK0_EVENT_1: ... break; default: .. break; } }

这是很常见的写法,在一些业务中,另一种写法会更好一些:就是通过事件回调函数表

typedef struct EventProcessor_t { Task0Event event; Event_Handler handler; } EventProcessor; EventProcessor task0_event_table[] = { {TASK0_EVENT_0, event0_handler}, {TASK0_EVENT_1, event1_handler}, {TASK0_EVENT_2, event2_handler}, ...... }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:57:57

原神抽卡记录导出工具完整使用指南

原神抽卡记录导出工具完整使用指南 【免费下载链接】genshin-wish-export biuuu/genshin-wish-export - 一个使用Electron制作的原神祈愿记录导出工具,它可以通过读取游戏日志或代理模式获取访问游戏祈愿记录API所需的authKey。 项目地址: https://gitcode.com/Gi…

作者头像 李华
网站建设 2026/5/1 5:57:30

Upscayl AI图像放大:五大常见问题与解决方案全解析

Upscayl AI图像放大:五大常见问题与解决方案全解析 【免费下载链接】upscayl 🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy. 项目地址: https://gitcode.com/GitHub_Trendin…

作者头像 李华
网站建设 2026/5/1 5:57:40

终极AI编程助手:OpenCode VSCode插件完整使用指南

终极AI编程助手:OpenCode VSCode插件完整使用指南 【免费下载链接】opencode 一个专为终端打造的开源AI编程助手,模型灵活可选,可远程驱动。 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 你是否厌倦了在终端和编辑…

作者头像 李华
网站建设 2026/5/1 5:57:29

FastCAE-Flow流体仿真软件:国产开源技术的新标杆

FastCAE-Flow流体仿真软件:国产开源技术的新标杆 【免费下载链接】APPFlow 是由FastCAE团队基于OpenFOAM11开发的开源国产流体仿真软件。它提供了集成化的模拟环境,涵盖了从几何建模、网格划分、求解计算和后处理的全过程。具有丰富的物理模型、先进的数…

作者头像 李华
网站建设 2026/5/1 5:57:15

想做头像?这个卡通化镜像5分钟就能上手

想做头像?这个卡通化镜像5分钟就能上手 你是不是也经常羡慕别人那些又酷又萌的卡通头像?想要一个专属自己的动漫形象,却苦于不会画画、找不到靠谱工具?别急——现在有个AI镜像,上传照片、点几下鼠标,5分钟…

作者头像 李华
网站建设 2026/5/1 3:46:28

Qwen-Image-2512功能测评:中文渲染与图像编辑表现如何

Qwen-Image-2512功能测评:中文渲染与图像编辑表现如何 1. 引言:为什么这款模型值得关注? 你有没有遇到过这样的尴尬?输入一段精心设计的中文提示词,结果生成的图片里文字全是乱码、错位,甚至干脆不显示。…

作者头像 李华