当前位置: 首页 > news >正文

【CPU占用率查看】

FreeRTOS-UART项目详解

这个项目是半年前写的一个demo,但是已经有些忘记,所以使用腾讯AI助手生成注释,方便阅读,如需要了解腾讯AI助手可以通过以下链接进行安装

嵌入式AI协助编程

项目地址:gitee地址

  1. 项目概述

这是一个基于STM32F407芯片的FreeRTOS项目,主要实现了任务管理和UART通信功能。项目使用STM32CubeMX生成基础代码框架,采用HAL库进行底层驱动开发。

  1. 硬件配置

主控芯片:STM32F407
通信接口:USART1
TX: PA9
RX: PA10
波特率:115200
数据格式:8位数据位,1位停止位,无校验位
时钟配置:使用定时器进行FreeRTOS运行时统计
3. 软件架构

项目采用FreeRTOS操作系统,主要包含以下组件:

FreeRTOS内核
UART通信驱动
任务管理模块
系统监控模块
4. 主要功能

  1. UART通信功能:

实现了printf重定向到UART1
支持标准输出功能
波特率115200,支持异步收发
2. FreeRTOS任务管理:

defaultTask:普通优先级任务,每秒打印"Task01"
CPU_myTask02:低优先级任务,负责系统监控,每3秒输出一次任务状态
5. FreeRTOS任务详解

defaultTask

优先级:普通(Normal)
堆栈大小:128*4字节
主要功能:每隔1秒通过UART发送"Task01"字符串
CPU_myTask02(系统监控任务)

优先级:低(Low)
堆栈大小:128*8字节
主要功能:
输出任务运行状态信息
显示任务名称、状态、优先级、剩余栈空间、任务序号
显示任务运行时间统计信息
任务状态说明:
B:阻塞
R:就绪
D:删除
S:暂停
X:运行
6. 特殊实现说明

  1. 运行时统计:

使用configureTimerForRunTimeStats和getRunTimeCounterValue实现任务运行时间统计
通过RUN_Time变量记录运行时间
2. printf重定向:

重新实现了fputc函数
禁用半主机模式
直接通过USART1寄存器发送数据
7. 调试输出说明

系统会定期输出两种格式的信息:

  1. 任务状态列表:显示所有任务的当前状态

  2. 运行时统计:显示每个任务的运行计数和CPU使用率

这个项目主要用于演示FreeRTOS的任务管理功能,并通过UART接口提供了实时的系统运行状态监控。

这里需要注意一下时钟的使用,我们我的系统运行检测依靠的是定时器TIM4
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 从零开始学习人工智能(Python高级教程)Day6-Python3 正则表达式
  • 《C语言中的结构体:数据组织的艺术》
  • 美信监控易:全栈式自主可控的底层架构优势
  • Qwen3简要介绍(截止20250506)
  • 基于ResNet50的手写符号识别系统
  • yolov8中的python基础--模块导入篇
  • Linux进程间通信(上)(21)
  • Marin说PCB之POC电路layout设计仿真案例---08
  • 在Fluent中使用Python脚本实现UDF并访问场数据和网格数据
  • GTC25 的 6G 会议
  • 【Linux我做主】深入探讨从冯诺依曼体系到进程
  • 人形机器人重塑制造业:仿生技术革命背后的机遇与隐忧
  • 406错误,WARN 33820 --- [generator] [nio-8080-exec-4] .w.s.m.s.DefaultHa
  • FlexibleButton:一个轻巧灵活的按键处理库,让你的按键处理更简单
  • 强力巨彩租赁屏:加速技术迭代助力舞台艺术焕新
  • 开源免费视频在线提取工具 MediaGo 介绍
  • 基于DevSecOps敏捷框架的数字供应链安全应解决方案
  • RAG框架搭建(基于Langchain+Ollama生成级RAG 聊天机器人)
  • 京东平台 API 对接实战:商品详情数据采集接口开发与调试教程
  • LaTex 模板 section 前小节符号去不掉 解决方法
  • 云南一男子酒后经常殴打七旬母亲,被警方拘14日罚600元
  • 联合国秘书长吁印巴“最大程度克制”,特朗普:遗憾,希望尽快结束冲突
  • 澳大利亚工党可以靠“回避”胜选,但继续执政需要更多勇气
  • 是谁提议特朗普向好莱坞征税?
  • 深圳一购房者交首付后迟迟无法签合同,澎湃介入后开发商承诺退款
  • 上海车展侧记|中国汽车产业的韧性从何而来