项目简介
本项目是基于STM32L4xx微控制器的嵌入式任务调度器,为嵌入式系统提供高效的任务管理功能。借助优先级队列和任务调度机制,系统可管理多个任务的执行顺序,支持任务的延迟执行与重新调度,保障任务的实时性和稳定性。
项目的主要特性和功能
- 任务队列管理
- 就绪队列:存放可立即执行的任务,按优先级排序。
- 延迟队列:存放需延迟执行的任务,按延迟时间排序,延迟时间递减后任务移至就绪队列。
- 任务调度
- QueTask():将任务加入就绪队列,可从主函数、其他任务或中断服务例程调用。
- Dispatch():从就绪队列取最高优先级任务执行,保证任务按优先级顺序执行。
- ReRunMe():重新调度任务,支持延迟或立即执行。
- 延迟管理
- Decrement():在系统定时器中断中调用,递减延迟队列中任务的延迟时间。
- Systick Handler():系统定时器中断处理函数,管理任务的时间单位和延迟递减。
- 应用场景
- 环境温度监控:通过DS3231 RTC传感器读取环境温度,超阈值触发LED报警。
- 停车传感器:用超声波传感器测距离,根据距离触发蜂鸣器报警,模拟停车传感器功能。
安装使用步骤
- 环境准备
- 安装STM32CubeMX、Keil μVision或其他支持STM32L4xx的开发工具。
- 确保硬件平台(如STM32L4xx开发板)与所需外设(如LED、传感器等)正确连接。
- 代码下载
- 下载项目源码,包含任务调度器、中断处理、应用任务等文件。
- 编译与调试
- 使用Keil μVision或其他开发工具打开项目,编译并生成可执行文件。
- 通过调试工具验证代码功能,确保任务调度和硬件外设正常工作。
- 硬件配置
- 根据项目需求,配置STM32L4xx的引脚和外设(如I2C、UART、定时器等)。
- 连接传感器、LED、蜂鸣器等硬件设备。
- 运行测试
- 将编译生成的可执行文件烧录到STM32L4xx开发板中。
- 观察任务调度结果和硬件外设的行为,确保系统按预期运行。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】