TaskScheduler TaskScheduler

ESP32 ⭐⭐⭐☆☆ (3/5) 🧩 软硬件结合 已发布
arkhipenko 1144 Stars 未知 BOM 完整度: /5 教程完整度: /5

项目简介

Cooperative multitasking for Arduino, ESPx, STM32, nRF and other microcontrollers


TaskScheduler 是一个专为 Arduino、ESP8266、ESP32、STM32 等微控制器设计的轻量级协作式多任务调度库,当前版本为 4.0.8。它的核心价值在于提供一种比 FreeRTOS 等抢占式框架更简单、更安全的多任务处理方式。通过协作式调度,任务主动让出 CPU 控制权,从根本上避免了并发编程中常见的竞态条件、死锁和资源竞争问题,让开发者无需深入复杂的并发理论即可构建可靠的嵌入式系统。

标签

项目特点

**协作式多任务调度**:无需担心并发问题,任务按顺序执行,天然避免竞态和死锁
**灵活的周期性执行**:支持毫秒或微秒级动态周期,可设置有限或无限次迭代
**动态任务管理**:运行时动态更改任务频率、迭代次数和回调函数
**事件驱动调用**:通过状态请求对象触发任务执行
**电源优化**:支持 IDLE 休眠模式,无任务时自动进入低功耗状态
**CPU 负载统计**:提供任务调度开销和空闲时间统计,适用于时间关键型应用
**多平台支持**:兼容 Arduino、ESP8266/ESP32、STM32、Teensy、nRF、MSP430、树莓派等
**线程安全**:可在 FreeRTOS 等抢占式调度器下安全运行
**丰富的回调绑定**:支持静态、动态回调方法和 std::functions

技术规格

调度开销
时间精度
最大任务数
迭代模式
回调绑定
平台支持
许可证

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
TaskScheduler 库 1 从 Arduino 库管理器或 GitHub 安装
Arduino/ESP/STM32 开发板 1 任意支持的平台
LED 1 用于示例演示
电阻(220Ω) 1 LED 限流
跳线 若干 连接电路

所需工具

工具用途是否必需
Arduino IDE 或 PlatformIO 编写和上传代码 ✅ 是
USB 数据线 连接开发板到电脑 ✅ 是
面包板 搭建测试电路 ▢ 推荐
示波器/逻辑分析仪 调试时序 ▢ 推荐

能力画像

记忆与知识检索
2/5
逻辑推演
3/5
表达与交流
1/5
感知与观察
2/5
数理与计算
3/5
狂热与坚持
2/5
创造与创新
3/5

视频

eoJUlH_rWOE

所需技能

🔧 **动手能力**:能够连接 LED 和传感器到开发板,搭建简单电路 💻 **编程能力**:熟悉 C/C++ 基础,了解 Arduino 编程框架,能编写回调函数 ⚡ **电子电路**:了解基本电子元件(LED、电阻、传感器)的连接方式

适用场景

需要同时运行多个周期性任务(如 LED 闪烁、传感器读取、串口通信)的 Arduino 项目
替代手动使用 `millis()` 进行时间管理的复杂代码
资源受限的嵌入式系统,需要轻量级调度方案
从简单原型过渡到更复杂多任务系统的项目
需要精确时序控制且避免并发问题的工业/商业嵌入式产品