项目简介
本项目是基于C语言的嵌入式系统任务调度器,用于管理不同优先级和延迟时间的任务。采用STM32L4xx微控制器作为硬件平台,借助STM32CubeMX和Keil μVision进行开发。调度器设有就绪队列和延迟队列来存储和调度任务,还包含温度传感器和停车传感器两个应用示例,展现了调度器在实际场景中的应用。
项目的主要特性和功能
- 任务调度:依据任务优先级和延迟时间,将任务插入就绪队列或延迟队列。
- 任务执行:从就绪队列取出最高优先级任务执行,处理延迟队列中到期任务。
- 延迟任务处理:延迟队列任务在指定延迟时间后移至就绪队列并按优先级排序。
- 任务优先级管理:任务按优先级插入就绪队列,高优先级任务优先执行。
- 任务重新调度:任务可自我调度,指定下一次执行时间。
- 硬件集成:支持与多种硬件设备(如温度传感器、超声波传感器、蜂鸣器等)集成,通过UART与外部设备通信。
安装使用步骤
硬件准备
确保准备好STM32L4xx微控制器开发板、DS3221温度传感器、HC - sr04超声波传感器、USB - TTL桥接器、蜂鸣器等硬件设备。
软件准备
安装并配置好STM32CubeMX和Keil μVision开发环境。
项目编译
- 打开Keil μVision,加载项目文件
CoScheduler
。 - 若需修改任务优先级,可在代码中调整任务的优先级设置。
- 使用
QueTask()
函数在Init()
函数调用后添加任务及其优先级。
下载与运行
- 编译项目并下载到STM32L4xx微控制器。
- 确保硬件连接正确,包括GPIO、I2C和USART等连接。
应用测试
- 温度传感器应用:通过UART输入温度阈值,观察LED是否在温度超过阈值时闪烁。
- 停车传感器应用:将物体放置在超声波传感器前,观察蜂鸣器声音的频率变化,反映物体距离的变化。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】