基于stm32_h5的freertos编程示例

目录

  • 基于stm32_h5的freertos编程示例
    • 实验目的
    • 添加FreeRTOS
    • 配置FreeRTOS
    • 测试工程
    • 本文中使用的测试工程

基于stm32_h5的freertos编程示例

本文目标:基于stm32_h5的freertos编程示例

按照本文的描述,应该可以在对应的硬件上通实验并举一反三。

先决条件:拥有C语言基础,装有编译和集成的开发环境,比如:Keil uVision5

使用外设:USART1、GPIO、SysTick

HAL库版本:STM32H5xx HAL Driver version number 1.1.0

实验目的

记录项目学习,学习在项目中进行freertos编程,体验freertos。

添加FreeRTOS

打开我以前的现有工程,找到FreeRTOS的相关配置,如下:

在这里插入图片描述

下载一下对应的资源包,以方便有对应的源码,进行install一下。

在这里插入图片描述

需要耐心的等待资料下载完成,

在这里插入图片描述

同意安装:

在这里插入图片描述

安装完成之后进行配置:

在这里插入图片描述

配置FreeRTOS

在这里插入图片描述

使用 FreeRTOS 时,它的时钟基准来之 SysTick 定时器;HAL 库的时钟基准建议更好为其他定时器,如下修改(TIMER6、TIMER7 是功能最弱的基础定时器,可以选择它们):

在这里插入图片描述

测试工程

按照上述的配置进行底层配置之后,添加一些代码进行测试,在生成的工程中有一个默认任务,我用来点灯测试一下,

void StartDefaultTask(void *argument)
{/* USER CODE BEGIN defaultTask *//* Infinite loop */for(;;){HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);vTaskDelay(100);}/* USER CODE END defaultTask */
}

然后再创建第 2 个任务,它在 LCD 上不断显示变化的字符。任务的入口函数如下:

static void SPILCDTaskFunction( void *pvParameters ) 
{char buf[100];int cnt = 0;while (1){sprintf(buf, "LCD Task Test : %d", cnt++);Draw_String(0, 0, buf, 0x0000ff00, 0);vTaskDelay(1000); }
}

在“MX_FREERTOS_Init”函数中,创建第 2 个任务:

  xTaskCreate(SPILCDTaskFunction, // 函数指针, 任务函数"spi_lcd_task",     // 任务的名字200,                // 栈大小,单位为word,10表示40字节NULL,               // 调用任务函数时传入的参数osPriorityNormal,   // 优先级NULL);              // 任务句柄, 以后使用它来操作这个任务

编译、烧写、运行,可以看到开发板的 LED 不断闪烁,LCD 上不断显示变化的数值。

在这里插入图片描述

工程实验成功,后续将会继续记录项目中的实验,感谢关注。

本文中使用的测试工程

https://download.csdn.net/download/weixin_44317448/89150153?spm=1001.2014.3001.5503

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

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

相关文章

十大远程控制软件排名

远程控制软件在现代计算环境中扮演着至关重要的角色,它们使得用户能够轻松地访问和管理远程计算机或设备。随着技术的不断进步,市场上涌现出许多优秀的远程控制工具。以下是对当前市场上十大远程控制软件的简要排名和介绍,以帮助您选择最适合…

上位机图像处理和嵌入式模块部署(树莓派4b实现xmlrpc通信)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面,我们也用纯API实现过上位机和开发板之间的通信。当时使用的方法,就是用windows自带的网络sdk和linux自带的api函数来完…

微软提供用于测试框架的SDK

微软发布了 MSTest SDK。 MSTest SDK基于 MSBuild Project SDK 系统构建并基于MSTest 运行程序,旨在为开发人员提供更好的使用 Microsoft 单元测试框架 MSTest 进行测试的体验。 微软表示, 4 月 11 日发布的MSTest SDK通过合理的默认设置和灵活的选项使…

Git回滚操作,工作区和暂存区恢复修改删除的文件

在利用git协作过程中,经常需要进行代码的撤销操作,这个行为可能发生在工作区,暂存区或者仓库区(或版本库)。 我们先讨论在工作区与暂存区发生的撤销行为,这里会有两个命令提供帮助,git restore…

uni-app学习

目录 一、安装HBuilderX 二、创第一个uni-app 三、项目目录和文件作用 四、全局配置文件(pages.json) 4.1 globalStyle(全局样式) 导航栏:背景颜色、标题颜色、标题文本 导航栏:开启下拉刷新、下拉背…

【GDAL-Python】10-在Python中可视化多波段卫星影像

文章目录 1-介绍1.1 主要内容1.2 线性拉伸介绍 2-代码实现2.1 数据介绍2.2 代码实现2.3 效果显示 4-参考资料 1-介绍 1.1 主要内容 (1)在本教程中,主要介绍如何使用 Python 和 matplotlib 可视化多波段 Landsat 8 卫星影像组成的真彩色影像…

Python也可以合并和拆分PDF,批量高效!

PDF是最方便的文档格式,可以在任何设备原样且无损的打开,但因为PDF不可编辑,所以很难去拆分合并。 知乎上也有人问,如何对PDF进行合并和拆分? 看很多回答推荐了各种PDF编辑器或者网站,确实方法比较多。 …

DRF APIView源码分析

【三】APIView源码分析 【1】Response和JsonResponse的区别 (1)Django REST framework的Response DRF的Response类是专门为构建RESTful API设计的。 它不仅仅是一个简单的JSON响应,而是包含了一系列与RESTful API交互有关的功能。 内容类型…

RK3568 学习笔记 : 更改 u-boot spl 中的 emmc 的启动次序

环境 开发板: 【正点原子】 的 RK3568 开发板 ATK-DLRK3568 u-boot 版本:来自 【正点原子】 的 RK3568 开发板 Linux SDK,单独复制出来一份,手动编译 编译环境:VMware 虚拟机 ubuntu 20.04 问题描述 RK3568 默认 …

C++笔记:类和对象

类和对象 认识类和对象 先来回忆一下C语言中的类型和变量,类型就像是定义了数据的规则,而变量则是根据这些规则来实际存储数据的容器。类是我们自己定义的一种数据类型,而对象则是这种数据类型的一个具体实例。类就可以理解为类型&#xff0c…

【数据结构与算法】用两个栈实现一个队列

题目 用两个栈,实现一个队列功能 add delete length 队列 用数组可以实现队列,数组和队列的区别是:队列是逻辑结构是一个抽象模型,简单地可以用数组、链表实现,所以数组和链表是一个物理结构,队列是一个逻…

Servlet-Filter实现反爬虫

以前用DotNetCore实现过反爬虫功能。在tomcat里面可以利用Servlet的Filter类实现请求的控制来达到反爬虫功能,进而增强JRT的web安全。 实现黑名单过滤器,对在黑名单列表的IP的所有请求都跳转到警告页面,业务各种请求自行定义加入黑名单 /* …