STM32基于FreeRTOS的多任务程序案例

2023-05-16

STM32基于FreeRTOS的多任务程序案例

  • 一、初步了解FreeRTOS
  • 二、实验要求
  • 三、基于FreeRTOS的多任务程序案例
  • 四、参考链接

使用工具

野火stm32mini开发板

Keil uVision5

野火多功能调试助手

一、初步了解FreeRTOS

  1. RTOS
    Real Time Operating System 实时操作系统。

  2. FreeRTOS
    FreeRTOS 是一款 “开源免费”的实时操作系统,遵循的是 GPLv2+的许可协议。

  3. FreeRTOS的编程风格

    ①FreeRTOS 的数据类型

    对标准 C 的数据类型进行了重定义。

    详细内容如下:

    新定义的数据类型实际的数据类型说明
    portCHARchar字符型
    ortSHORTshort短整型
    ortLONGlong长整型
    ortTickTypeunsigned short int或者unsigned int均用于定义系统时基计数器的值和阻塞时间的值。当 FreeRTOSConfig.h 头文件中的宏configUSE_16_BIT_TICKS 为 1 时,unsigned short int则为 16位,unsigned int则为 32位。
    ortBASE_TYPElong根据处理器的架构来决定是多少位的,如果是 32/16/8bit 的处理器则是 32/16/8bit 的数据类型。一般用于定义函数的返回值或者布尔类型。

    ②FreeRTOS的变量名

    定义变量的时候往往会把变量的类型当作前缀加在变量上。

    通常规则是char 型变量的前缀是 c,short 型变量的前缀是 s,long 型变量的缀是 l, portBASE_TYPE 类型,数据结构,任务句柄,队列句柄变量的前缀是 x。如果一个变量是无符号型的那么会有一个前缀 u,如果是一个指针变量则会有一个前缀 p。因此,当我们定义一个无符号的 char 型变量的时候会加一个 uc 前缀,当定义一个char 型的指针变量的时候会有一个 pc 前缀。

    ③FreeRTOS的函数名

    函数名包含了函数返回值的类型、函数所在的文件名和函数的功能,如果是私有的函数则会加一个 prv(private)的前缀。

    ④FreeRTOS的宏

    宏均是由大写字母表示,并配有小写字母的前缀,前缀用于表示该宏在个头文件定义。比如 configUSE_PREEMPTION(config就表示宏定义在FreeRTOSConfig.h中)

    二、实验要求

    在STM32下完成一个基于FreeRTOS的多任务程序,执行3个周期性task

    task1,每间隔500ms闪烁(变化)一次LED;

    task2,每间隔2000ms,向串口发送一次指令数据“helloworld!";

    task3,每间隔5000ms,从AHT20采集一次温湿度数据

    三、基于FreeRTOS的多任务程序案例

链接:https://pan.baidu.com/s/1Jy8QbQhI9Mq0QTp5eyFgrA
提取码:grpv
使用连接完整工程代码,打开“Project——>RVMDK(uv5)——>Fire_FreeRTOS.uvprojx”

将编译后的程序烧录到开发板中(如果烧录有问题自行百度)

使用野火多功能调试助手进行调试,结果如下

在这里插入图片描述

在这里插入图片描述

四、参考链接

野火FreeRTOS内核实现与应用开发实战.pdf

链接:https://pan.baidu.com/s/1q_ZsPx5wQZcB1F80M-hREQ
提取码:m0hj

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32基于FreeRTOS的多任务程序案例 的相关文章

  • ION框架学习(一)

    第一章介绍 xff1a ION的框架和buffer的分配 xff1b 第二章介绍 xff1a 如何使用ION buffer xff1b ION是google在Android4 0 为了解决内存碎片管理而引入的通用内存管理器 用来支持不同的内
  • 高通Camera 驱动调试要点(一)

    本文主要介绍QCOM camera调试的重要参数 xff1b xff08 1 xff09 Lane assign 和lane mask 现在摄像头基本都是mipi接口类型 xff0c 因为前后摄都对应到平台这边不同的mipi接口 xff0c
  • 高通Camera 驱动调试要点(二)

    这篇文章主要介绍数据流这边Camera ISP这块所遇到的问题 xff0c 主要介绍bus overflow和sof freeze xff1b xff08 一 xff09 bus overflow 摄像头传感器时钟通道 即 MIPI DDR
  • c/c++代码性能效率

    一 尽量减少值传递 xff0c 多用引用来传递参数 boolCompare xff08 span class hljs keyword string span s1 span class hljs keyword string span s
  • 6.Docker定制镜像

    当我们从docker镜像仓库中下载的镜像不能满足我们的需求时 xff0c 我们可以通过以下两种方式对镜像进行更改 1 从已经创建的容器中更新镜像 xff0c 并且提交这个镜像 2 使用 Dockerfile 指令来创建一个新的镜像 Dock
  • 全球最大成人网站公布年度榜单!原来lsp最爱看的是这种片……

    前几天 xff0c 那个号称全球最大的成人网站P hub xff0c 发布了 2022年度报告 别惊讶 xff0c 这已经是P某发布年度报告的第9个年头了 正所谓 xff0c 知己知彼百战不殆 不发年度报告 xff0c 怎么总结过去 xff
  • ROS学习篇(三)ROS系统的串口数据读取和解析(组合导航系统)

    一 Ubuntu下的串口助手cutecom 下载 xff1a sudo apt get install cutecom 打开 xff1a sudo cutecom 查看电脑链接的串口信息 xff08 名称 xff09 xff1a dmesg
  • VScode 结合clangd 构建linux源代码阅读环境

    1 背景介绍 上一篇文章 xff1a VScode 结合Global构建linux源代码阅读环境 xff0c 介绍了在VS Code工具中通过remote ssh远程登陆到Linux远程服务器 xff0c 使用Global构建linux源代
  • 信号量 PK 自旋锁

    信号量可能允许有多个持有者 xff0c 而自旋锁在任何时候只能允许一个持有者 xff0c 当然也有信号量叫互斥信号量 xff08 只能有一个持有者 xff09 xff0c 允许有多个持有者的信号量叫 计数信号量 信号量适合于保持时间较长的情
  • 【FreeRTOS】FreeRTOS 源码学习笔记 (4) 任务创建xTaskCreate + 常用结构体TCB、xLIST

    1 引言 经过第一节的移植 xff0c 我们已经拿到了一个可以用的工程 经过第二三节的基础知识 xff0c 我们对基本的数据结构 xff0c 列表 队列这些也有了一个了解 接下来就可以单步跟踪了 xff0c 看一下系统是怎么运行的 使用Fr
  • 【FreeRTOS】FreeRTOS 源码学习笔记 (5) 任务调度器 + vTaskStartScheduler、xPortPendSVHandler、xPortSysTickHandler

    1 引言 FreeRTOS的任务调度是个大头 xff0c 也是一个操作系统的核心 其实个人理解 xff0c FreeRTOS调度规则很好理解 xff0c 原则就是 优先级高抢占 xff0c 因为FreeRTOS是一个抢占式实时内核 xff0
  • [Qt入门篇]8 Qt的属性系统——总结

    QT常用的属性READ WRITE MEMBER NOTIFY RESET 1 QObject子类中使用Q PROPERTY宏声明属性 xff1b 2 Q PROPERTY宏中不能使用逗号 xff08 xff0c xff09 xff0c 只
  • [GIT] git打标签tag和分支branch的区别

    tag代表了当前的提交点 xff0c 是个点 xff0c tag是当前提交点的一个记录 xff0c tag名字是不能重复的 xff0c 就代表了唯一的这个点 branch代表里新的支线 xff0c 是个线 xff0c 可以继续延展 当在某个
  • 从社区贡献者到加入核心团队,开源给他带来了这些变化

    作者 尔悦 采访嘉宾 谭雪峰 就在今年六月份 xff0c 又一位社区Contributor成功入职涛思数据 xff0c 他的身份也从TDengine的社区贡献者转变为专职的研发人员 在身份变换的同时 xff0c 他对于自身的成长和发展 对于
  • quartus Ⅱ 12.1 使用教程(4) uart 测试

    开发板使用的是EP4CE15F23C8 xff0c 软件使用的是quartus 12 1 xff0c 工程实现的功能是使用uart进行回环测试 顶层 module uart test i clk i rst n rx tx input i
  • WebRTC音视频同步

    这两篇文章 xff0c 可以直接去看 xff1b WebRTC音视频同步机制实现分析 https www jianshu com p 3a4d24a71091 WebRTC音视频同步分析 https blog csdn net lincai
  • qemu 虚拟机和宿主机之间传输文件

    实现简单的虚拟机和宿主机之间的文件传输 使用dd创建一个文件 xff0c 作为虚拟机和宿主机之间传输桥梁 dd if 61 dev zero of 61 opt share img bs 61 1M count 61 200格式化share
  • apt update和apt upgrade命令 - 有什么区别?

    在之前的文章中 xff0c 我们查看了APT 命令以及您可以使用包管理器来管理包的各种方法 这是一个总体概述 xff0c 但在本指南中 xff0c 我们暂停并重点关注 2 个命令用法 这些是apt update和apt upgrade命令
  • 48 个 Linux 面试问题和答案

    你在准备 Linux 面试吗 xff1f 我们准备了一些常见的 Linux 面试问题及其答案 如果您是初学者 xff08 具有一定的 Linux 知识或获得认证 xff09 或具有专业的 Linux 管理经验 xff0c 那么下面的问答有助
  • linux服务篇-Xinetd服务

    Xinetd 61 eXtended InterNET services daemon 扩展互联网服务守护进程 61 超级互联网守护进程 61 超级服务 xff0c xinetd是新一代的网络守护进程服务程序 xff0c 又叫超级Inter

随机推荐

  • 内参、外参、畸变参数三种参数与相机的标定方法与相机坐标系的理解

    https blog csdn net yangdashi888 article details 51356385 1 相机参数是三种不同的参数 相机的内参数是六个分别为 xff1a 1 dx 1 dy r u0 v0 f u0 v0为图像
  • C语言中的__FILE__、__LINE__和#line

    原文链接 xff1a http hi baidu com 419836321 blog item fcf5ceec484681cfb31cb1f7 html C语言中的 FILE 用以指示本行语句所在源文件的文件名 xff0c 举例如下 x
  • PX4 SITL MAVROS速度控制-用机身坐标系发布速度

    不改变PX4控制双闭环源码 xff0c 仅依靠mavros现有的速度控制和位置控制话题 xff0c 来实现旋翼圆形轨迹 1 位置控制 xff1a mavros setpoint position local 优点 xff1a 位置准确 xf
  • 用java简单的实现单链表的基本操作

    此代码仅供参考 xff0c 如有疑问欢迎评论 xff1a package com tyxh link 节点类 public class Node protected Node next 指针域 protected int data 数据域
  • 算法:海量日志数据,提取出某日访问百度次数最多的那个IP

    首先是这一天 xff0c 并且是访问百度的日志中的IP取出来 xff0c 逐个写入到一个大文件中 注意到IP是32位的 xff0c 最多有个2 32个IP 同样可以采用映射的方法 xff0c 比如模1000 xff0c 把整个大文件映射为1
  • 使用JUnit测试预期异常

    开发人员常常使用单元测试来验证的一段儿代码的操作 xff0c 很多时候单元测试可以检查抛出预期异常 expected exceptions 的代码 在Java语言中 xff0c JUnit是一套标准的单元测试方案 xff0c 它提供了很多验
  • BlockingQueue深入分析

    1 BlockingQueue 定义的常用方法如下 抛出异常特殊值阻塞超时插入add e offer e put e offer e time unit 移除remove poll take poll time unit 检查element
  • Qt对directshow的封装

    在源码路径中 xff1a qt everywhere opensource src 5 1 1 qtmultimedia src plugins directshow xff0c 有两个文件夹player 和 camera xff0c 1
  • 聚合类新闻客户端产品功能点详情分析

    产品功能点 功能 今日头条 百度新闻 鲜果 ZAKER 媒体订阅 个性化内容推荐 个性化订阅 RSS 视频新闻 评论盖楼 搜索新闻 离线下载 地方新闻 一键分享 收藏 推送 天气 夜间模式 线上活动 主题设置 感兴趣 语音读文章 字体设置
  • 聚合类新闻客户端初体验

    初体验的产品 xff1a 今日头条 ios3 6 百度新闻 ios4 4 0 ZAKER ios4 4 5 鲜果 ios3 8 7 中搜搜悦 ios4 0 1 Flipboard ios2 3 9 1 Flipboard 一款国外很火的ap
  • 聚合类新闻客户端的改进

    zaker和鲜果是最早的聚合类新闻产品 xff0c 前几年发展很快 xff0c 迅速占领了市场 xff0c 但近两年发展变得缓慢 xff0c 而今日头条自发布以来才两年 xff0c 用户量就迅速超过了zaker和鲜果 xff0c 使用起来非
  • 单例模式优缺点

    主要优点 xff1a 1 提供了对唯一实例的受控访问 2 由于在系统内存中只存在一个对象 xff0c 因此可以节约系统资源 xff0c 对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能 3 允许可变数目的实例 主要缺点 xff
  • 适配器模式优缺点

    优点 xff1a 1 将目标类和适配者类解耦 2 增加了类的透明性和复用性 xff0c 将具体的实现封装在适配者类中 xff0c 对于客户端类来说是透明的 xff0c 而且提高了适配者的复用性 3 灵活性和扩展性都非常好 xff0c 符合开
  • Oracle 的 Round函数

    Round函数用法 xff1a 截取数字 格式如下 xff1a ROUND xff08 number decimals xff09 其中 xff1a number 待做截取处理的数值 decimals 指明需保留小数点后面的位数 可选项 x
  • eclipse报错:Failed to load the JNI shared library

    电脑自装系统以来 xff0c 好久没有写java代码了 xff0c 所以一直也没用 eclipse IDE xff0c 今天将eclipse打开 xff0c 报了个问题 xff0c Failed to load the JNI shared
  • 10串口通信

    51单片机学习记录10 通信通信的的基本概念串口参数及时序图常用通信接口比较 51单片机串口介绍串口通信简介串口内部结构串口通信相关寄存器 串口通信实验串口向计算机发送数据计算机通过串口控制LED 通信 通信的的基本概念 通信的方式 通信方
  • 【已解决】zookeeper配置出现问题合集

    已解决 zookeeper配置出现问题合集 1 问题诊断 日志2 问题解决合集2 1zookeeper集群搭建报错 拒绝连接 2 2zookeeper集群搭建报错 没有找到主机路由 1 问题诊断 日志 1 进入文件查看日志 xff1a zo
  • noVNC 安装、配置与使用

    最近项目中使用到了远程终端操控 xff0c 从各方找到了noVNC这个神奇的家伙 xff0c 废话不多说 xff0c 开始介绍它的安装配置与使用 1 下载noNVC 好多渠道可以下载到noVNC xff0c 可以直接访问noVNC的官方网页
  • 360极速浏览器网页保护色

    方法一 xff1a 360浏览器的 扩展中心 有一个 绿色眼睛 的插件 xff1b 但是感觉一般 xff0c 不够彻底 xff1b 方法二 xff1a 360急速浏览器是基于开源Chrome浏览器修改的 xff0c 所以可以直接用Chrom
  • STM32基于FreeRTOS的多任务程序案例

    STM32基于FreeRTOS的多任务程序案例 一 初步了解FreeRTOS二 实验要求三 基于FreeRTOS的多任务程序案例四 参考链接 使用工具 野火stm32mini开发板 Keil uVision5 野火多功能调试助手 一 初步了