STM32CubeMX+freeRTOS+事件组 多任务处理LED和串口打印

摘要:利用CubeMx配置freeeRTOS建立任务并使用事件组实现按键按下时 LED开关和打印信息到串口,上位机接收显示。

验证STM32CubeMx配置的FreeRTOS的任务和事件组使用
方案:按下Key1,绿灯亮或者灭,同时串口打印Key1被按下了到上位机;相关端口和串口配置省略。
新建三个任务:
1》    按键扫描 KeyScan;
2》    灯开关 LEDToggle;
3》    串口打印 PrintTask
 


添加事件组:
 


然后代码生成即可。
代码生成后,任务和事件组的定义均生成在freeRTOS.c的代码中,串口代码在Usart.c,按键和LED灯的配置在GPIO.c中。
根据要实现的功能补充相关代码:LED灯的toggle, 串口使用Printf输出,此类代码可以从开发板自带的实验代码中获取,在此不做陈述。
关键代码如下:
1.    按键扫描任务的代码:
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/760458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[mailto:steloj@mailfence.com].steloj勒索病毒数据怎么处理|数据解密恢复

导言: 随着互联网的普及和数字化进程的加速,网络安全已成为人们关注的焦点。近年来,勒索病毒以其高隐蔽性和破坏性在互联网上大肆传播,给个人和企业带来了巨大的损失。其中,[mailto:stelojmailfence.com].steloj勒索病…

Sora底层技术原理:Stable Diffusion运行原理

AIGC 热潮正猛烈地席卷开来,可以说 Stable Diffusion 开源发布把 AI 图像生成提高了全新高度,特别是 ControlNet 和 T2I-Adapter 控制模块的提出进一步提高生成可控性,也在逐渐改变一部分行业的生产模式。惊艳其出色表现,也不禁好…

嵌入式开发--获取STM32产品系列的信息

嵌入式开发–获取STM32产品系列和容量信息 获取STM32产品系列 有时候我们需要知道当前MCU是STM32的哪一个系列,这当然可以从外部丝印看出来,但是运行在内部的软件如何知道呢? ST为我们提供了一个接口,对于STM32的所有MCU&#x…

xshell链接不上hadoop虚拟机

输入ifconfig查看是否有ens33 没有的话解决方案如下: systemctl stop NetworkManager systemctl restart network.service service network restartsys 依次输入以上命令 如果报错或者没用的话,进入root重新输入一遍这三个命令 大功告成!…

LF-YOLO

LF-YOLO算法解读,针对x射线图像 1、EMF:网络结构的改变,enhanced multiscale feature(增强的多尺度特性),多尺度融合模块。利用基于参数的方法和无参数的方法,可以同时结合X射线图像的局部和全局上下文,利用…

【C++从练气到飞升】04---拷贝构造函数

🎈个人主页:库库的里昂 ✨收录专栏:C从练气到飞升 🎉鸟欲高飞先振翅,人求上进先读书。 目录 ⛳️推荐 一、拷贝构造函数的引入 1. 以日期类为例:进行的值拷贝是不会发生错误的 2. 以栈类为例:进行的值拷贝会发现发…

oracle实现批量插入

一、Dao层(增加Parm参数) void insert(Param("list") List<TicketInfo> ticketInfos); 二、Mapper层(加入条件判断值是否为空) insert all<foreach collection"list" item"item" index"index">into 表名<trim prefix…

批量重启某个节点的pod

在我们日常运维工作中&#xff0c;经常有下线某个节点的需求&#xff0c;如果采用直接驱逐&#xff0c;会导致服务不可用&#xff0c;故采用重启的方式&#xff0c;可以实现新pod 漂移到新节点上。以下是采用shell 命令的方式重启某个节点的pod。 前置条件&#xff1a;已把下线…

【一竞技CS2】pasha将骑行前往哥本哈根Major

1、传奇老将pasha最近发文表示&#xff1a;自己将在3月23日&#xff0c;从华沙的西吉斯蒙德圆柱出发&#xff0c;开始了前往哥本哈根Major的旅程。 去年pasha于当地时间5月12日清晨出发&#xff0c;并一路开启直播记录自己骑行前往巴黎的旅程。最终他于5月19日抵达埃菲尔铁塔。…

05-shell编程-比较判断

一、判断文件/目录是否存在 1&#xff0c;判断文件是否存储在 [rootgong ~]# [ -f /etc/hosts ] && echo "它存在" || echo "它不存在" 它存在 [rootgong ~]# [ -f /etc/hostssssss ] && echo "它存在" || echo "它不存在…

基于python+vue智慧农业小程序flask-django-php-nodejs

传统智慧农业采取了人工的管理方法&#xff0c;但这种管理方法存在着许多弊端&#xff0c;比如效率低下、安全性低以及信息传输的不准确等&#xff0c;同时由于智慧农业中会形成众多的个人文档和信息系统数据&#xff0c;通过人工方法对知识科普、土壤信息、水质信息、购物商城…

AVL树的实现

概念 1.为了解决二叉搜索树有序插入&#xff0c;会退化成链表&#xff0c;导致效率低下。 AVL树的左右子树高度差不超过1&#xff0c;所以AVL树的查找效率为logn。 2.在左子树高度增加&#xff0c;平衡因子减一&#xff0c;在右子树高度增加&#xff0c;平衡因子加一。 节点…

C# winform修改背景图 控件双向绑定 拖拽打开图片

修改背景图 说明 这里我准备基于百度飞桨PaddleSeg项目的人像分割模块做一个人像抠图&#xff0c;这里顺便用上了双向绑定和图片拖拽打开。 下面就是示例&#xff1a; 用颜色替换 用背景图替换 保存成功后的图片 一、使用百度飞桨PaddleSeg //初始化 引擎engine new Padd…

如何配置VS Code环境

一、下载 Visual Studio Code - Code Editing. Redefined 二、傻瓜式安装 如果出现没有安装路径选择&#xff0c;则看下面图片 经过上面操作后&#xff0c;可以修改路径 三、按照下面步骤配置环境变量即可 Visual Studio Code 中的 C 和 MinGW-w64 入门

数据库学习之数据库基本知识

什么是数据库 数据&#xff1a;描述事物地符号记录&#xff0c;包括单不限于数字、文字、图形、图像、声音、语言等。数据有多种形式&#xff0c;这个内容都可以经过式子化地处理后存入计算机。 数据库&#xff1a;数据仓库。是长期存放再计算机内、有组织、可共享地大量数据…

UE5 C++增强输入

一.创建charactor&#xff0c;并且包含增强输入相关的头文件 1.项目名.build.cs。添加模块“EnhancedInput”&#xff0c;方便找到头文件和映射的一些文件。 PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine&q…

在基于Android相机预览的CV应用程序中使用 OpenCL

查看&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV4.9.0在Android 开发简介 下一篇&#xff1a;在 MacOS 中安装 本指南旨在帮助您在基于 Android 相机预览的 CV 应用程序中使用 OpenCL ™。教程是为 Android Studio 20…

用图解说明mysql 行锁加锁规则

加锁原则 原则 1&#xff1a;加锁的基本单位是 next-key lock。希望你还记得&#xff0c;next-key lock 是前开后闭区间。原则 2&#xff1a;查找过程中访问到的对象才会加锁。优化 1&#xff1a;索引上的等值查询&#xff0c;给唯一索引加锁的时候&#xff0c;next-key lock …

【Java】Oracle发布Java22最新版本

甲骨文&#xff08;ORACLE&#xff09;已经于2023年3月19日正式发布了最新版本的JDK&#xff0c;版本号&#xff1a;22 根据官方声明&#xff0c;Java 22 (Oracle JDK 22) 在性能、稳定性和安全性方面进行了数千种改进&#xff0c;包括对Java 语言、其API 和性能&#xff0c;以…

python vtk读取vtk文件

参考&#xff1a; https://cloud.tencent.com/developer/ask/sof/101993637 方法一&#xff1a;使用pyvtk 要使用Python读取VTK文件&#xff0c;可以使用pyvtk库。首先&#xff0c;确保已经安装了pyvtk。如果没有安装&#xff0c;可以通过pip安装&#xff1a; csharp pip ins…