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

FreeRTOS知识梳理

一、RTOS:Real time operating system,中文意思为 实时操作系统,它是一类操作系统,比如uc/OS、FreeRTOS、RTX、RT-Thread 这些都是实时操作系统。

二、移植FreeRTOS到STM32F103C8T6上

interface选择CMSIS_V1,RCC选择Crystal   Ceramic Resonator 。    

 

 FreeRTOS相关创建部分

 

三、任务的创建与删除相关函数,FreeRTOS任务的状态

 

五、任务小实验

 

 

 LED1和LED2引脚设置成Ooutput,KEY1和KEY2引脚设置成Input

 LED1和LED2功能实现代码:

void StartTaskLED1(void const * argument)
{for(;;){HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);//HAL_GPIO_TogglePin实现电平反转,PB8控制LED1osDelay(500);}}void StartTaskLED2(void const * argument)
{for(;;){HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_9);osDelay(1000);}
}

KEY1和KEY2功能实现:

void StartTaskKEY1(void const * argument)
{for(;;){if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET)//KEY1为PA0{osDelay(20);if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET){	printf("key1被按下!!!\r\n");// \r为回车符,\n为换行符if( taskLED1Handle == NULL){printf("任务1不存在,准备创建任务1\r\n");osThreadDef(taskLED1, StartTaskLED1, osPriorityNormal, 0, 128);taskLED1Handle = osThreadCreate(osThread(taskLED1), NULL);if(taskLED1Handle != NULL)printf("任务1创建成功\r\n");}else{printf("删除任务1\r\n");osThreadTerminate(taskLED1Handle);taskLED1Handle = NULL;}}while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET);//设置死循环,防止按键按下后一直执行下去}osDelay(1);}
}void StartTaskKEY2(void const * argument)
{static int flag = 0;//设置标志位for(;;){if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)==GPIO_PIN_RESET){osDelay(20);if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)==GPIO_PIN_RESET){	printf("key2被按下!!!\r\n");if( flag == 0){osThreadSuspend(taskLED2Handle);printf("任务2已暂停\r\n");flag = 1;}else{osThreadResume(taskLED2Handle);printf("任务2已恢复!!!\r\n");flag = 0;}}while(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1)==GPIO_PIN_RESET);}osDelay(1);}}

相关文章:

FreeRTOS知识梳理

一、RTOS:Real time operating system,中文意思为 实时操作系统,它是一类操作系统,比如uc/OS、FreeRTOS、RTX、RT-Thread 这些都是实时操作系统。 二、移植FreeRTOS到STM32F103C8T6上 interface选择CMSIS_V1,RCC选择Crystal Ceramic Resonator 。 …...

冒泡排序算法(C++版)

1、什么是冒泡排序? 冒泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是多次遍历待排序的元素序列,每次比较相邻两个元素,如果它们的顺序不正确就交换它们,直到整个序列有序。在每一轮遍…...

第22章_数据库的设计规范

文章目录 范式的概念三范式范式一范式二范式三 反范式总结 范式的概念 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库&#xff…...

5. 深度学习——正则化

机器学习面试题汇总与解析——正则化 本章讲解知识点 什么是正则化为什么要使用正则化?详细讲解正则化本专栏适合于Python已经入门的学生或人士,有一定的编程基础。本专栏适合于算法工程师、机器学习、图像处理求职的学生或人士。本专栏针对面试题答案进行了优化,尽量做到好…...

【链表和顺序表的优缺点】

...

iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤

目录 iOS移动应用安全加固:保护您的App免受恶意攻击的重要步骤 摘要 引言 一、APP加固的概念 二、APP加固方案的比较 三、保护iOS应用的安全 四、总结 参考资料 摘要 本文介绍了移动应用程序(App)加固的概念和流程,以及市…...

C# .NET Core API 注入Swagger

C# .NET Core API 注入Swagger 环境 Windows 10Visual Studio 2019(2017就有可以集中发布到publish目录的功能了吧)C#.NET Core 可跨平台发布代码,超级奈斯NuGet 套件管理dll将方法封装(据说可以提高效率,就像是我们用的dll那种感觉)Swagger 让接口可视化编写时间2020-12-09 …...

家庭安全计划 挑战赛| 溺水预防

溺水预防 从了解到行动 家庭安全计划 | 少年急救官 地震避险逃生该怎么做? 起火了该如何应对? 哪些行为容易导致溺水? 家庭风险隐患有哪些? 家庭逃生演练四步骤你会吗? 国际救助儿童会(英国&#xff…...

飞书开发学习笔记(五)-Python快速开发网页应用

飞书开发学习笔记(五)-Python快速开发网页应用 一.下载示例代码 首先进入飞书开放平台: https://open.feishu.cn/app 凭证与基础信息 页面,在 应用凭证 中获取 App ID 和 App Secret 值。 教程和示例代码位置:https://open.feishu.cn/document/home/integrating-…...

对测试职业发展的思考

虽然在测试行业摸爬滚打了很年,随着年龄的增长,职位的升迁,似乎已经走到了尽头,因而还是时不时觉得自己的职业发展目标很模糊,这是最近对自己职业发展的一些思考,希望与大家进行分享和探讨: 1、…...

博弈论入门

目录 什么是博弈? 博弈论的发展历史? 博弈的要素有哪些? 博弈的分类? 博弈论的应用 收益矩阵 纳什均衡的定义 博弈论的例子 1、田忌赛马 2、穷途困境 2.1优化反应函数法 2.2Nashpy库 2.3顶点枚举算法 3、Nash游戏 …...

php加密解密

public static function encrypt($data, $key) {$key 111;// 生成盐值$salt openssl_random_pseudo_bytes(16);// 使用盐值和密钥进行加密$encrypted openssl_encrypt($data, AES-128-CBC, $key, 0, $salt);// 将盐值和加密后的数据拼接$result base64_encode($salt . $enc…...

基于YOLOv8的输电线路异物识别算法应用

基于 YOLOv8 的输电线路异物识别算法应用 输电线路作为电力系统的重要一环,保证其安全稳定运行是十分必要的。由于长期暴露于室外,线路所面临的不安全因素繁多,异物入侵便是其中之一。异物可能会引起线路短路甚至诱发火灾,因此要加…...

win环境Jenkins部署前端项目

今天分享win环境Jenkins部署前端vue项目,使用的版本jenkins版本Jenkins 2.406版本。 前提是jenkins安装好了,通用配置已经配置好了,可以参考上两篇博客。 1、前端项目依赖nodejs,需要安装相关插件 点击进入 安装成功标准 jenki…...

DDD领域驱动设计模式结构图面向接口编程

DDD领域驱动设计模式结构图面向接口编程 9.资源库 在刚接触资源库(Repository)时,第一反应便是这就是个 DAO 层,访问数据库,然后吧啦吧啦,但是,当接触的越久,越发认识到第一反应是错的,资源库更…...

Ubuntu中安装R语言环境并在jupyter kernel里面增加R kernel

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...

JVM:如果是你,你如何解决跨代引用的问题?(记忆集和卡集)

这部分内容主要是为了稍后介绍各款垃圾收集器时做前置知识铺垫,如果对这部分内容感到枯燥或者疑惑,可以先放下看,等后续遇到要使用它们的实际场景、实际问题时再结合问题,再回来阅读和理解。 记忆集和卡集 前面在分代收集理论那…...

Python实现WOA智能鲸鱼优化算法优化卷积神经网络分类模型(CNN分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提…...

使用 Qt 实现监听网页是否响应,导出 Excel 表

Qt 实现监听网页是否响应 要使用 Qt 实现监听网页是否响应&#xff0c;可以利用 QNetworkAccessManager 类来发送 HTTP 请求并处理响应。以下是一个示例代码&#xff1a; #include <QtNetwork>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 创…...

Java通过JNI技术调用C++动态链接库的helloword测试

JNI调用原理 原理就不细说了&#xff0c;其实就是写个库给Java调&#xff0c;可以百度一下Java JNI&#xff0c;下面是HelloWorld代码测试 编写一个本地测试类 package com.my.study.cpp_jni;/*** 测试Java调用C库* <p>使用命令javac -h . NativeTest.java自动生成C头…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...