首页 > 其他分享 >FreeRTOS+CubeMX入门(二)--使用cubemx生成FreeRTOS工程

FreeRTOS+CubeMX入门(二)--使用cubemx生成FreeRTOS工程

时间:2024-08-27 16:25:41浏览次数:15  
标签:StartDefaultTask FreeRTOS -- void OLED CubeMX include

目录

CubeMX 创建FreeRTOS 入门实例

  • 该笔记记录使用CubeMX创建FreeRTOS工程的粗略讲解,快速构建一个工程,对FreeRTOS有一个初步认识
  • 选择CubeIDE或CubeMX 创建项目,在这期间会出现一些警告,可去FreeRTOS+CubeMX入门–warning and error中查看

基础配置

请添加图片描述

选择 TIM6 代替 Systick 是因为 FreeRTOS 会占用 Systick,使用其他定时器代替Systick避免不必要的错误
时钟选择外部高速时钟
请添加图片描述请添加图片描述
选择最新的CMSIS_V2接口,该接口作用是链接STM32与FreeRTOS
请添加图片描述
FreeRTOS的各个参数简单先了解一下,后面的笔记会详细记录
请添加图片描述
FreeRTOS会生成一个默认任务用于执行
请添加图片描述
请添加图片描述
请添加图片描述

第一个项目-驱动OLED

中断配置

请添加图片描述

文件 的简单认识

请添加图片描述
请添加图片描述
oled驱动改编自江协科技的标准库版本

主函数代码简单分析

请添加图片描述

#include "FreeRTOS.h"
#include "task.h"
#include "main.h"
#include "cmsis_os.h"

#include "OLED.h"

// 创建任务句柄
osThreadId_t defaultTaskHandle;
// 设置任务参数
const osThreadAttr_t defaultTask_attributes = {
  .name = "defaultTask",
  .stack_size = 128 * 4,
  .priority = (osPriority_t) osPriorityNormal,
};

void StartDefaultTask(void *argument);

void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) one

void MX_FREERTOS_Init(void) {
    // 创建任务
  defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);
}

void StartDefaultTask(void *argument)
{
  /* USER CODE BEGIN StartDefaultTask */
    OLED_Init();
    uint64_t i = 0;
  /* Infinite loop */
  for(;;)
  {
      i+=1;
      OLED_ShowNum(0,0,i,10,6);
      OLED_Update();
    osDelay(1000);

  }
}

请添加图片描述

编写业务函数

请添加图片描述
在默认任务中编写代码,任务一般独立起一个文件,这里为了方便,使用默认任务,在freertos.c文件中编辑
请添加图片描述

实验效果

请添加图片描述

标签:StartDefaultTask,FreeRTOS,--,void,OLED,CubeMX,include
From: https://blog.csdn.net/f272935657/article/details/141595987

相关文章

  • AT_code_festival_2017_qualc_d - Yet Another Palindrome Partitioning 题解
    YetAnotherPalindromePartitioning题解题目大意给出一个字符串,求把这个字符串划分成最少的小段,使每个小段都可以经过字母重组后为回文串。题目分析如果暴力的话,需要DFS段数、每一段的左节点、右节点,以及判断是否为回文串,时间复杂度在\(O(|S|^{|S|})\)左右。但是本......
  • 【IDEA】一键重启多个服务
    点击EditConfigurations点击加号,选择Compound添加需要重启的服务,保存选择配置好的Compound,一键重启附加:调整服务运行内存,AddVMoptions,填写合适的内存大小......
  • 前馈神经网络
    前馈神经网络(FeedforwardNeuralNetwork,FNN)是一种基础的人工神经网络结构,其信息流动是单向的,从输入层(inputlayer)通过隐藏层(hiddenlayers)最终流向输出层(outputlayer),没有反向的连接。以下是前馈神经网络的一些关键特点:层次结构:前馈神经网络由多个层次组成,每个层次包含若干......
  • PMP考试注意事项及应试指南,考前必看!
    为了让大家能够更好的应对PMP®考试,为大家总结了PMP®应试指南,希望大家用100%的状态面对来之不易的考试,能够顺利通过考试!一、考试内容第1本:核心官方教材《项目管理知识体系指南PMBOK》第六版,第2本:核心官方教材《项目管理知识体系指南PMBOK》第七版,第3本:《敏捷实践指南》......
  • rasadhlp.dll揭秘:远程访问服务作用与修复丢失的实用手册
    rasadhlp.dll是一个与Windows操作系统相关的动态链接库(DLL)文件,通常与远程访问服务(RemoteAccessService,RAS)的功能实现有关。这个DLL文件可能包含了处理RAS连接管理、资源管理和与其他系统组件交互等功能所需的函数和资源,对于确保远程访问服务的正常运行非常重要。当rasad......
  • springboot+vue基于青少年篮球俱乐部管理系统设计与实现【程序+论文+开题】-计算机毕
    系统程序文件列表开题报告内容研究背景随着青少年体育运动的蓬勃发展,篮球作为一项广受欢迎的体育项目,其俱乐部数量在全国范围内迅速增长。然而,传统的管理方式往往依赖于人工记录和纸质文档,不仅效率低下,还容易出错,难以满足俱乐部日常运营中运动员信息管理、比赛组织、报名流......
  • springboot+vue基于驾校信息管理系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着社会的快速发展和汽车保有量的持续增长,驾驶技能已成为现代人不可或缺的生活技能之一。驾校作为培养驾驶员的重要机构,其管理模式与效率直接影响到学员的学习体验与培训质量。传统驾校管理模式存在信息不透明、流程繁琐、资源分配不......
  • springboot+vue基于大学生考研服务系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着高等教育的普及和就业竞争的日益激烈,越来越多的大学生选择继续深造,通过研究生入学考试(简称考研)来提升自己的学术水平和职业竞争力。然而,考研之路并非坦途,它要求考生不仅要有扎实的专业知识,还需具备高效的学习方法和良好的备考策略......
  • springboot+vue基于超市会员积分管理系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着零售行业的快速发展与数字化转型的深入,超市作为消费者日常购物的重要场所,其管理模式和服务水平直接影响着顾客满意度与忠诚度。在众多提升顾客忠诚度的策略中,会员积分管理系统凭借其个性化、差异化的服务优势,逐渐成为超市吸引并留......
  • 利用Hexo和Github Pages搭建自己的博客(1)
    前言本文章会同步发表到博主自己的博客,所以如果在博主自己的博客里发现这个文章,请不要惊讶1.准备工具一台Windows7以上的电脑Node.js(建议lts版本)GitHexo一个Github账号和邮箱代码编辑器(强烈建议vscode)一个名字为:username(这里为你的GitHub名称).github.io的仓库2.安装No......