STM32CubeMX的使用

本文详细介绍了STM32系列的标准化外设库、HAL库和LL库,包括它们的功能、优缺点及使用场景。同时涵盖了软件下载、安装设置和STM32CubeMX的实战应用,特别是输入捕获部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录:

一、STM32系列的库简介

1、寄存器(STM32Snippets)

2、标准外设库

3、HAL库

4、LL库

二、软件下载、安装与一般设置

1、软件下载、安装

2、显示设置

三、STM32CubeMX的使用

1、工程的建立与管理

2、输入捕获


一、STM32系列单片机的库简介

1、寄存器(STM32Snippets)

它是代码示例的集合,直接基于STM32外设寄存器,可在文档和软件包中使用。由于处在最底层,因此需要开发者直接操作外设寄存器。

2、标准外设库

标准外设库(Standard Peripherals Library)是对STM32芯片的一个完整的封装,包括所有标准器件外设的器件驱动器。这应该是目前使用最多的ST库。几乎全部使用C语言实现。但是,标准外设库也是针对某一系列芯片而言的,没有可移植性。

相对于HAL库,标准外设库仍然接近于寄存器操作,主要就是将一些基本的寄存器操作封装成了C函数。开发者需要关注所使用的外设是在哪个总线之上,具体寄存器的配置等底层信息。

注意:不支持从STM32L0、STM32L4和STM32F7芯片开始之后的STM32系列芯片。

ST为各系列提供的标准外设库稍微有些区别。例如,STM32F1x的库和STM32F3x的库在文件结构上就有些不同,此外,在内部的实现上也稍微有些区别,这个在具体使用(移植)时,需要注意一下!但是,不同系列之间的差别并不是很大,而且在设计上是相同的。

3、HAL库

ST为新的标准库注册了一个新商标:STMCube™。并且,ST专门为其开发了配套的桌面软件STMCubeMX,开发者可以直接使用该软件进行可视化配置,大大节省开发时间。其中就包含了HAL库和LL库。

HAL是Hardware Abstraction Layer的缩写,中文名:硬件抽象层。HAL库是ST为STM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。该库提供了一整套一致的中间件组件,如RTOS,USB,TCP / IP和图形等。

HAL库是基于一个非限制性的BSD许可协议(Berkeley Software Distribution)而发布的开源代码。 ST制作的中间件堆栈(USB主机和设备库,STemWin)带有允许轻松重用的许可模式, 只要是在ST公司的MCU 芯片上使用,库中的中间件(USB 主机/设备库,STemWin)协议栈即被允许随便修改,并可以反复使用。至于基于其它著名的开源解决方案商的中间件(FreeRTOS,FatFs,LwIP和PolarSSL)也都具有友好的用户许可条款。

可以说HAL库就是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。HAL库是ST未来主推的库。目前,HAL库已经支持STM32全线产品。使用HAL库编程,最好尽量符合HAL库编程的整体架构。

4、LL库

1)LL库(Low Layer)与HAL捆绑发布,文档也和HAL文档在一起。LL库更接近硬件层,对需要复杂上层协议栈的外设不适用,直接操作寄存器,支持所有外设。针对一些低性能(M0)或者低功耗(L系列)的芯片编程时。相较于HAL库的低效率,寄存器操作的复杂,标准库的逐渐淘汰,LL库就成为了替代HAL库一个比较好的选择。

STM32使用HAL库、标准库、LL库和寄存器操作的性能对比:

上图转自:STM32使用HAL库、标准库、LL库和寄存器操作的性能对比

--------------------------------

2)LL驱动程序介绍

一组函数,用于根据数据结构中指定的参数初始化外围主要功能;

一组函数,用于用每个字段的重置值填充初始化数据结构执行外围设备反初始化的功能(外围设备寄存器恢复为默认值);

一组内联函数,用于直接和原子寄存器访问;

由于LL驱动程序可以在独立模式下(无HAL驱动程序)或在混合模式下(有HAL驱动程序)使用,因此与HAL完全独立。

--------------------------------

3)与HAL库相同,LL库同样支持STM32CubeMX生成代码,非常方便。并且,在STM32CubeMX工程中,不同外设是可以混合使用HAL和LL库的,两者完全兼容,所以适配上是不存在问题的。LL库的生成设置如下。

二、软件下载、安装与一般设置

1、软件下载、安装

1)中国意法半导体STM | STM32/STM8微控制器 | MCU单片机搜索下载

--------------------------------

2)软件包安装

安装后的效果:

2、显示设置

三、STM32CubeMX的使用

1、工程的建立与管理

工程建立:

工程管理:

2、输入捕获

实际工程应用:STM32单片机-输入捕获、FFT测频

调试端口设置:

IO设置:

中断设置:

定时器3配置:

RCC时钟设置:

生成代码:


如若喜欢这篇文章,不妨留下您宝贵的点赞,这将是对我莫大的鼓励。 

### STM32 CubeMX 使用教程 #### 官方文档获取途径 官方提供了详细的STM32CubeMX使用手册,这份手册涵盖了从软件安装到具体功能使用的各个方面。通过访问STMicroelectronics官方网站的支持页面可以下载该手册[^1]。 #### 视频教程推荐 对于希望获得更直观学习体验的开发者而言,《正点原子》系列中的“手把手教你学STM32 HAL库开发全集”是一个非常好的资源选项。这套视频不仅讲解了STM32的基础概念,还深入探讨了HAL库的应用方法,并且全程采用真人出镜的方式进行教学,非常适合初学者跟随操作练习。 #### 示例项目的创建流程 当利用STM32CubeMX来启动一个新的工程项目时,用户可以选择多种初始化方式。例如,在配置阶段可以根据实际需求挑选合适的外设模块并调整参数;之后可以通过点击“Project->Generate Code”,让工具自动生成初始化代码框架以及必要的驱动程序文件夹结构。值得注意的是,除了支持标准的HAL库之外,也允许选用更为底层控制的LL库来进行硬件编程工作,而且这两种API可以在同一个项目里共存而不互相冲突[^3]。 #### 软件安装指南 关于STM32CubeMX本身的安装过程,有专门针对此环节编写的《STM32CubeMX 安装教程》,它详细描述了整个安装步骤,包括环境准备、版本选择直至最终完成设置后的验证测试等内容。按照这个指引能够帮助新接触这款工具的朋友顺利完成初次部署[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱上电路设计

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值