STM32CubeMX和HAL库

news2024/11/16 1:19:44

目录

STM32CubeMX和HAL库介绍

STM32Cube主要包括两部分

安装MCU固件包

软件功能与基本使用


STM32CubeMX和HAL库介绍

STM32CubeMX软件是ST有限公司为STM32系列微控制器快速建立工程,并快速初始化使用到的外设、GPIO等而设计的,大大缩短了开发时间。 同时,该软件不仅能配置STM32外设,还能进行第三方软件系统的配置,例如FreeRTOS、FAT 32、LWIP等;而且还有一个功能,就是可以用它进行功耗预估。此外,这款软件可以输出PDF、TXT文档,显示所开发工程中的GPIO等外设的配置信息,供开发者进行原理图设计等。

STM32CubeMX是ST官方出的一款针对ST的MCU/MPU跨平台的图形化工具,支持在Linux、MacOS、Window系统下开发,支持ST的全系列产品目前包括:STM32L0,STM32L1,STM32L4,STM32L5,STM32F0,STM32F1,STM32F2,STM32F3,STM32F4,STM32F7,STM32G0,STM32G4,STM32H7,STM32WB,STM32WL,STM32MP1,其对接的底层接口是HAL库,STM32CubeMx除了集成MCU/MPU的硬件抽象层。 另外还集成了像RTOS,文件系统,USB,网络,显示,嵌入式AI等中间件,这样开发者就能够很轻松的完成MCU/MPU的底层驱动的配置,留出更多精力开发上层功能逻辑,能够更进一步提高了嵌入式开发效率。

STM32CubeMX软件的特点: (1)集成了ST有限公司的每一款型号的MCU/MPU的可配置的图形界面,能够自动提示IO冲突并且对于复用IO可自动分配。 (2)具有动态验证的时钟树。 (3)能够很方便地使用所集成的中间件。 (4)能够估算MCU/MPU在不同主频运行下的功耗。 (5)能够输出不同编译器的工程,比如能够直接生成MDK、EWArm、STM32CubeIDE、MakeFile等工程。 为了使开发人员能够更加快捷有效地进行STM32的开发,ST有限公司推出了一套完整的STM32Cube开发组件。

STM32Cube主要包括两部分

一是STM32CubeMX图形化配置工具,它是直接在图形界面简单配置下,生成初始化代码,并对外设做了进一步的抽象,让开发人员更只专注于应用的开发;二是基于STM32微控制器的固件集STM32Cube软件资料包。 从ST有限公司官网可下载STM32CubeMX软件最新版本的安装包,本书使用的版本是6.6.1。安装包解压后,运行其中的安装程序,按照安装向导的提示进行安装。 安装过程中会出现图3-1所示的界面,需要勾选第一个复选框后才可以继续安装。第二个复选框可以不用勾选。

安装MCU固件包

包含软件库文件夹设置和管理嵌入式软件包两部分。

在安装完STM32CubeMX后,若要进行后续的各种操作,必须在STM32CubeMX中设置一个软件库文件夹(Repository Folder),在STM32CubeMX中安装MCU固件包和STM32Cube扩展包时都安装到此目录下。 双击桌面上的STM32CubeMX图标运行该软件,软件启动后的界面如图3-2所示。

在图的最上方有3个主菜单项,单击菜单项Help→Updater Settings,会出现图3-3所示的对话框。首次启动STM32CubeMX后,立刻单击这个菜单项可能提示软件更新已经在后台运行,需要稍微等待一段时间后再单击此菜单项。 在图3-3中,Repository Folder 就是需要设置的软件库文件夹,所有MCU固件包和扩展包要安装到此目录下。

图界面上的Check and Update Settings 单选框用于设置STM32CubeMX软件的更新方式,Data Auto-Refresh单选框用于设置在STM32CubeMX启动时是否自动刷新已安装软件库的数据和文档。

设置了软件库文件夹,就可以安装MCU固件包和扩展包了。在图所示的界面上, 单击主菜单项 Help→Manage embedded software packages,出现图3-4所示的 Embedded SoftwarePackages Manager(嵌入式软件包管理)对话框。这里将STM32Cube MCU固件包和STM32Cube扩展包统称为嵌入式软件包。

在图界面的下方有几个按钮,它们可用于完成不同的操作功能。 (1)From Local 按钮,从本地文件安装MCU固件包。如果从ST官网下载了固件包的压缩文件,如en.stm32cubef1_vl-8-4.zip是1.8.4版本的STM32CubeF1固件包压缩文件,那么单击From Local 按钮后,选择这个压缩文件(无须解压),就可以安装这个固件包。但是要注意,这个压缩文件不能放置在软件库根目录下。 (2)From Url按钮,需要输入一个URL网址,从指定网站上下载并安装固件包。一般不使用这种方式,因为不知道URL。 (3)Refresh按钮,刷新目录树,以显示是否有新版本的固件包。应该偶尔刷新一下,以保持更新到最新版本。 (4)Install按钮,在目录树里勾选一个版本的固件包,如果这个版本的固件包还没有安装,这个按钮就可用。单击这个按钮,将自动从ST官网下载相应版本的固件包并安装。

(5)Remove按钮,在目录树里选择一个版本的固件包,如果已经安装了这个版本的固件包,这个按钮就可用。单击这个按钮,将删除这个版本的固件包。 STMicroelectronics界面的管理内容如图3-5所示,这个界面是ST有限公司提供的一些STM32Cube扩展包,包括人工智能库X-CUBE-AI、图形用户界面库X-CUBE-TOUCHGFX等,以及一些芯片的驱动程序,如MEMS、BLE、NFC芯片的驱动库。 用户可以根据设计需要安装相应的扩展包,例如,安装4.20.0版本的TouchGFX后,TouchGFX库保存在如下的目录之下: C:\Users\lenovo\Repository\Packs\STMicroelectronics\X-CUBE-TOUCHGFX\4.20.0

软件功能与基本使用

在设置了软件库文件夹并安装了STM32CubeF1固件包之后,就可以开始用STM32CubeMX创建项目并进行操作了。在开始针对开发板开发实际项目之前,我们需要先熟悉STM32CubeMX的一些界面功能和操作。

软件界面包含初始主界面和主菜单功能两部分。 1. 初始主界面 启动STM32CubeMX之后的初始界面如图所示。STM32CubeMX从5.0版本开始使用了一种比较新颖的用户界面,与一般的Windows应用软件界面不太相同,也与4.x版本的STM32CubeMX界面相差很大。 图的界面主要分为3个功能区,分别描述如下。 (1)主菜单栏。窗口最上方是主菜单栏,有3个主菜单项,分别是File、Window和Help。这3个菜单项有下拉菜单,可供用户通过下拉菜单项进行一些操作。主菜单栏右端是一些快捷按钮,单击这些按钮就会用浏览器打开相应的网站,如ST社区、ST官网等。

(2)标签导航栏。主菜单栏下方是标签导航栏。在新建或打开项目后,标签导航栏可以在STM32CubeMX的3个主要视图之间快速切换。这3个视图如下。 ① Home(主页)视图,即图所示的界面。 ② 新建项目视图,新建项目时显示的一个对话框,用于选择具体型号的 MCU或开发板创建项目。 ③ 项目管理视图,用于对创建或打开的项目进行MCU图形化配置、中间件配置、项目管理等操作。

(3)工作区。窗口其他区域都是工作区。STM32CubeMX使用的是单文档界面,工作区会根据当前操作的内容显示不同的界面。 图的工作区显示的是Home视图,Home视图的工作区可以分为如下3个功能区域。 ① Existing Projects 区域,显示最近打开过的项目,单击某个项目就可以打开此项目。 ② New Project区域,有3个按钮用于新建项目,选择MCU创建项目,选择开发板创建项目,或交叉选择创建项目。 ③ Manage software installations区域,有两个按钮:CHECK FOR UPDATES 按钮用于检查STM32CubeMX和嵌入式软件包的更新信息;INSTALL/REMOVE 按钮用于打开图所示的对话框。 Home视图上的这些按钮的功能都可以通过主菜单里的菜单项实现操作。

2. 主菜单功能 STM32CubeMX有3个主菜单项,软件的很多功能操作都是通过这些菜单项实现的。 (1)File菜单。该菜单主要包括如下菜单项。 ① New Project(新建项目),打开选择MCU新建项目对话框,用于创建新的项目。STM32CubeMX的项目文件后缀是.ioc,一个项目只有一个文件。新建项目对话框是软件的3个视图之一,界面功能比较多,在后面具体介绍。 ② Load Project(加载项目),通过打开文件对话框选择一个已经存在的.ioc项目文件并载入项目。 ③ Import Project(导入项目),选择一个ioc项目文件并导入其中的MCU设置到当前项目。注意,只有新项目与导入项目的MCU型号一致且新项目没有做任何设置,才可以导入其他项目的设置。

④ Save Project(保存项目),保存当前项目。如果新建的项目第一次保存,会提示选择项目名称,需要选择一个文件夹,项目会自动以最后一级文件夹的名称作为项目名称。 ⑤ Save Project As(项目另存为),将当前项目保存为另一个项目文件。 ⑤ Close Project(关闭项目),关闭当前项目。 ⑥ Generate Report(生成报告),为当前项目的设置内容生成一个PDF报告文件,PDF报告文件名称与项目名称相同,并自动保存在项目文件所在的文件夹里。 ⑦ Recent Projects(最近的项目),显示最近打开过的项目列表,用于快速打开项目。 ⑧ Exit(退出),退出STM32CubeMX。

(2)Window菜单。该菜单主要包括如下菜单项。 ① Outputs(输出),一个复选的菜单项,被勾选时,在工作区的最下方显示一个输出子窗口,显示一些输出信息。 ② Font size(字体大小)。有3个子菜单项,用于设置软件界面字体大小,需重启STM32CubeMX后才生效。 (3)Help菜单。该菜单主要包括如下菜单项。 ① Help(帮助),显示STM32CubeMX的英文版用户手册PDF文档,文档有300多页,是个很齐全的使用手册。 ② About(关于),显示关于本软件的对话框。 ③ Docs&Resources(文档和资源),只有在打开或新建一个项目后此菜单项才有效。 ④ Refresh Data(刷新数据),会显示图3-6所示的Data Refresh对话框,用于刷新MCU和开发板的数据,或下载所有官方文档。

⑤ User Preferences(用户选项),会打开一个对话框用于设置用户选项,只有一个需要设置的选项,即是否允许软件收集用户使用习惯。 ⑥ Check for Updates(检查更新),会打开一个对话框,用于检查STM32CubeMX软件、各系列MCU固件包、STM32Cube扩展包是否有新版本需要更新。 ⑦ Manage embedded software packages(管理嵌入式软件包),会打开图所示的对话框,对嵌入式软件包进行管理。 ⑧ Updater Settings(更新设置),会打开图所示的对话框,用于设置软件库文件夹,设置软件检查更新方式和数据刷新方式。

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

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

相关文章

【面试八股总结】MySQL日志:undo log、redo log、binlog

MySQL中存在三种日志: undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。redo log(重做日志):是 Innodb 存储引擎层…

服务网关工作原理,如何获取用户真实IP?

文章目录 一、什么是网关二、网关工作原理 (★)三、SpringCloud Gateway3.1 Gateway 简介3.2 Gateway 环境搭建3.3 自定义路由规则 (★)3.4 局部过滤器3.5 全局过滤器(案例:获取用户真实IP地址) (★) 补充1:不同类型的客户端如何设…

MapSet之相关概念

系列文章: 1. 先导片--Map&Set之二叉搜索树 2. Map&Set之相关概念 目录 1.搜索 1.1 概念和场景 1.2 模型 2.Map的使用 2.1 关于Map的说明 2.2 关于Map.Entry的说明 2.3 Map的常用方法说明 3.Set的说明 3.1关于Set说明 3.2 常见方法说明 1.搜…

CTFHub技能树-Git泄漏-Index

目录 一、Git索引(Index)的基本概念 二、解题过程 主旨:使用git泄漏恢复源代码 方法一:使用GitHack手动恢复 方法二:直接使用Git_Extract获取网站源代码拿去flag 当前大量开发人员使用git进行版本控制&#xff0c…

图神经网络(2)预备知识

1. 图的基本概念 对于接触过数据结构和算法的读者来说,图并不是一个陌生的概念。一个图由一些顶点也称为节点和连接这些顶点的边组成。给定一个图G(V,E), 其 中V{V1,V2,…,Vn} 是一个具有 n 个顶点的集合。 1.1邻接矩阵 我们用邻接矩阵A∈Rnn表示顶点之间的连接关…

初识Linux · 有关gdb

目录 前言: 1 预备知识 2 gdb的使用 前言: 当我们Linux学到了这里的时候,我们大概会有一种感觉是,从VS2022转战Linux,写代码对我们来说是一种重新构建读写代码的一个过程,从文本编辑器,到文…

怎样将手机屏幕(远程)投屏到家里的大电视上?

我不住家里,前几次回去都会替老爸老妈清理手机。这两个星期没空回去,老爸吐槽手机用几天就又卡了,其实就是清理一些手机缓存的问题。 我说我远程控制他的手机,给他清理一下。他一听“控制”就不喜欢,说我大了&#xf…

视频中的噪点怎么去除?

在数字视频时代,拍摄高质量的视频成为了许多人的追求。然而,在实际拍摄过程中,由于多种原因,我们常常会遇到视频噪点过多、画面模糊的问题,这不仅影响了观看体验,还可能让精心拍摄的作品大打折扣。那么&…

【生物信息学算法】图算法1:概念和算法

文章目录 1. 图的定义、分类、表达方式图的定义图的分类表达方式Python实现 2.相邻节点和度概念定义python实现 3.路径、距离和搜索路径和距离搜索环 4.图论中的欧拉定理 1. 图的定义、分类、表达方式 图的定义 图G可以由两个集合来定义,即G(V,E)。其中&#xff0…

MapSet之二叉搜索树

系列文章: 1. 先导片--Map&Set之二叉搜索树 2. Map&Set之相关概念 目录 前言 1.二叉搜索树 1.1 定义 1.2 操作-查找 1.3 操作-新增 1.4 操作-删除(难点) 1.5 总体实现代码 1.6 性能分析 前言 TreeMap 和 TreeSet 是 Java 中基于搜索树实现的 M…

申万宏源证券完善金融服务最后一公里闭环,让金融服务“零距离、全天候”

在数字化转型的浪潮中,申万宏源作为金融行业的先锋,持续探索科技如何赋能金融服务,以提升企业效率并优化客户服务体验。面对日益增长的视频化需求,传统的图文形式已难以满足市场与用户的新期待。为了应对这一挑战,申万…

简单梳理一个历史脉络

B 站上王山水老师的一个视频引发的思考:没有司马篡国,能避免300年的大乱世吗? 我的答案如下: 视野放宽到欧亚大陆,广义上公元184年黄巾军起义开启内乱,狭义上公元220年正式进入三国,280年晋统一…

新手做短视频素材在哪里找?做短视频素材工具教程网站有哪些?

本文将为你提供一系列新手友好的视频制作资源,包括素材网站和编辑工具,帮助你快速成为短视频领域的新星。让我们从国内知名的蛙学网开始介绍。 蛙学网:新手的视频素材天堂 对于短视频新手而言,蛙学网绝对是一个宝库。该网站提供了…

1-10 图像增强对比度 opencv树莓派4B 入门系列笔记

目录 一、提前准备 二、代码详解 enhanced_image cv2.convertScaleAbs(image, alpha1.5, beta0) 三、运行现象 四、完整工程贴出 一、提前准备 1、树莓派4B 及 64位系统 2、提前安装opencv库 以及 numpy库 3、保存一张图片 二、代码详解 import cv2 # 增强图像的对比度 …

环境配置!

一 安装CUDA 在安装CUDA之前,建议先看下pytorch的更新版本,应为pytorch更新较慢,请保证CUDA的版本,对应的pytorch版本存在。 去pytorch官网查看电脑支持的cuda版本最高是多少。PyTorch 我这边在网站上看最高支持的CUDA版本为12.…

SpringDataJPA系列(7)Jackson注解在实体中应用

SpringDataJPA系列(7)Jackson注解在实体中应用 常用的Jackson注解 Springboot中默认集成的是Jackson,我们可以在jackson依赖包下看到Jackson有多个注解 一般常用的有下面这些: 一个实体的示例 测试方法如下: 按照上述图片中的序号做个简…

【python】Python中如何通过rembg实现图片背景去除

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

Java预备知识 - day2

1.IDEA的简单使用与介绍 1.1 IDEA的项目工程介绍 Day2_0904:项目名称 E:\0_code\Day2_0904:表示当前项目所在路径 .idea:idea软件自动生成的文件夹,最好不要动 src:srcsourse→源,我们的源代码就放在这…

计算机网络知识点复习——TCP协议的三次握手与四次挥手(连接与释放)

TCP协议的三次握手与四次挥手(连接与释放) 一、前言二、简单的知识准备1. TCP协议的主要特点2. TCP报文段 三、TCP连接的建立(三次握手)四、TCP连接的释放(四次挥手)五、TCP连接与释放的总结六、结束语 一、…

计算机基础知识复习9.6

点对点链路:两个相邻节点通过一个链路相连,没有第三者 应用:PPP协议,常用于广域网 广播式链路:所有主机共享通信介质 应用:早期的总线以太网,无线局域网,常用于局域网 典型拓扑结…