news 2026/5/12 18:34:16

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 20:46:05

Mindustry终极指南:免费开源塔防RTS的深度玩法解析

Mindustry终极指南:免费开源塔防RTS的深度玩法解析 【免费下载链接】Mindustry The automation tower defense RTS 项目地址: https://gitcode.com/GitHub_Trending/min/Mindustry 想要掌握这款融合自动化、塔防与策略的免费开源游戏吗?Mindustry…

作者头像 李华
网站建设 2026/5/9 9:03:46

MinerU vs PDF-Extract-Kit:多模态提取性能对比实战评测

MinerU vs PDF-Extract-Kit:多模态提取性能对比实战评测 1. 引言:为什么我们需要更智能的PDF内容提取? 你有没有遇到过这样的情况:一份几十页的学术论文PDF,里面布满了复杂的公式、多栏排版和嵌入式图表,…

作者头像 李华
网站建设 2026/5/11 15:47:28

FSMN-VAD功能测评:准确率高还支持实时录音

FSMN-VAD功能测评:准确率高还支持实时录音 1. 引言:为什么语音端点检测如此重要? 在日常开发中,我们经常需要处理音频数据——无论是会议录音、客服对话,还是智能音箱的唤醒识别。但一个普遍的问题是:原始…

作者头像 李华
网站建设 2026/5/10 9:48:34

PyTorch预装库有哪些?一文详解通用开发环境参数配置

PyTorch预装库有哪些?一文详解通用开发环境参数配置 1. 环境简介与核心价值 你是不是也经历过每次搭建深度学习环境时,都要花半天时间装依赖、配源、调版本?明明只想跑个模型,结果被各种 pip install 和报错搞到怀疑人生。 现在…

作者头像 李华
网站建设 2026/5/12 4:42:11

支持109种语言的OCR利器|PaddleOCR-VL-WEB在机械图纸理解中的应用

支持109种语言的OCR利器|PaddleOCR-VL-WEB在机械图纸理解中的应用 1. 引言:当传统OCR遇上复杂工程图 在现代制造业中,大量的技术资料以扫描件、PDF或图像形式存在。这些文件承载着关键的设计参数、装配关系和工艺要求,但因为是图…

作者头像 李华
网站建设 2026/5/12 4:42:43

星图AI平台优化指南:让PETRV2-BEV模型训练速度提升3倍

星图AI平台优化指南:让PETRV2-BEV模型训练速度提升3倍 在自动驾驶感知系统开发中,BEV(鸟瞰视角)3D目标检测正成为多传感器融合方案的核心环节。PETRV2作为当前主流的纯视觉BEV检测模型之一,凭借其层次化BEV Query设计…

作者头像 李华