littlebot
Published on 2025-04-11 / 1 Visits
0

【源码】基于C语言的嵌入式系统任务调度器

项目简介

本项目是基于C语言的嵌入式系统任务调度器,用于管理不同优先级和延迟时间的任务。采用STM32L4xx微控制器作为硬件平台,借助STM32CubeMX和Keil μVision进行开发。调度器设有就绪队列和延迟队列来存储和调度任务,还包含温度传感器和停车传感器两个应用示例,展现了调度器在实际场景中的应用。

项目的主要特性和功能

  1. 任务调度:依据任务优先级和延迟时间,将任务插入就绪队列或延迟队列。
  2. 任务执行:从就绪队列取出最高优先级任务执行,处理延迟队列中到期任务。
  3. 延迟任务处理:延迟队列任务在指定延迟时间后移至就绪队列并按优先级排序。
  4. 任务优先级管理:任务按优先级插入就绪队列,高优先级任务优先执行。
  5. 任务重新调度:任务可自我调度,指定下一次执行时间。
  6. 硬件集成:支持与多种硬件设备(如温度传感器、超声波传感器、蜂鸣器等)集成,通过UART与外部设备通信。

安装使用步骤

硬件准备

确保准备好STM32L4xx微控制器开发板、DS3221温度传感器、HC - sr04超声波传感器、USB - TTL桥接器、蜂鸣器等硬件设备。

软件准备

安装并配置好STM32CubeMX和Keil μVision开发环境。

项目编译

  1. 打开Keil μVision,加载项目文件CoScheduler
  2. 若需修改任务优先级,可在代码中调整任务的优先级设置。
  3. 使用QueTask()函数在Init()函数调用后添加任务及其优先级。

下载与运行

  1. 编译项目并下载到STM32L4xx微控制器。
  2. 确保硬件连接正确,包括GPIO、I2C和USART等连接。

应用测试

  1. 温度传感器应用:通过UART输入温度阈值,观察LED是否在温度超过阈值时闪烁。
  2. 停车传感器应用:将物体放置在超声波传感器前,观察蜂鸣器声音的频率变化,反映物体距离的变化。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】