当前位置: 首页 > news >正文

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}, ...... }
http://www.cnnetsun.cn/news/745986.html

相关文章:

  • 无需API!用FRCRN语音降噪镜像打造全自动双语字幕流程
  • Z-Image-Turbo实战:消费级显卡实现秒级出图
  • 斯坦福四足机器人Pupper V3:开源技术如何重塑智能机器人未来
  • MinerU能否识别竖排文字?中文古籍提取案例
  • SmartDNS配置完全指南:打造智能家庭网络的最佳实践
  • AI抠图还能这么简单?科哥开发的UNet工具真实体验
  • 2026年嵌入模型选型:Qwen3-Embedding系列实战分析
  • Next AI Draw.io:如何用智能对话重塑图表设计工作流
  • 如何用wangEditor表格解决企业数据展示难题:完整实践指南
  • 从零开始YOLOv9:新手入门必看的完整部署教程
  • 当AI学会“以我之眼“:Ego4D如何重塑机器视觉的未来
  • 实测Qwen3-Embedding-4B:32K长文本处理效果惊艳分享
  • Tabby终端工具终极指南:跨平台SSH连接与界面优化完整解析
  • 终极决策指南:Chat2DB开源版与商业版深度技术评估
  • 如何快速集成DocuSeal文档签名API:开发者实战指南
  • AutoHotkey窗口定位终极指南:从零基础到精确定位的完整教程
  • ModelScope本地部署实战:从零开始搭建AI模型运行环境
  • Qwen3-Reranker-8B终极指南:快速掌握智能文档重排序技术
  • Yuzu模拟器性能调优实战指南:告别卡顿闪退的终极方案
  • Speech Seaco Paraformer日志查看:错误排查与性能监控指南
  • 如何彻底解决Windows 11右键菜单卡顿问题:新手也能掌握的终极优化方案
  • Open-Meteo开源天气API:打造专属天气数据服务的终极指南
  • AI图像放大终极秘籍:从模糊到高清的完整解决方案
  • Steam挂刀终极指南:智能监控工具助你24小时自动捕捉最佳交易时机
  • leetcode 3315(位运算)
  • 为什么Wekan成为团队协作的首选开源看板工具?
  • BSHM人像抠图避坑指南,这些常见问题你一定要知道
  • 打造专属童话书:Qwen生成+排版自动化实战案例
  • 2026 年企业 HR 高效管理指南:一体化 HR 系统打通招聘到入职数据孤岛
  • XIVLauncher 完全使用手册:从零开始畅玩FF14