zoukankan      html  css  js  c++  java
  • 1- STM32 HAL库学习 GPIO配置点亮LED灯

    STM32三种库:

    库的类型:

    ST已经推出了三种库函数,以方便客户快速开发STM32系列MCU。从15、16年开始,ST逐渐停止了对标准外设库的更新和维护,转向了HAL和LL库。
    (1) 标准外设驱动库SPL                     Standard Peripheral Library
    (2) Cube HAL                                     Hardware Abstraction Layer硬件抽象层库
    (3) Cube LL以及直接操作寄存器       Low-layer底层库

    几种库的区别:

    ①Cube LL库的效率优于HAL库的,几乎和直接写寄存器的效率相差无几。

    ②HAL库函数因为要顾及整个STM32系列间的代码高度兼容与可移植性,代码相对庞大。对于刚接触STM32的人来说,非常易于上手做些基本的评估和验证,入门快捷。

    ③LL库的出现,是对HAL库的有力补充。相比HAL库用户,LL库用户需要对MCU及相应外设有更为细致的了解

    目前,STM32cubeMX不但支持基于HAL库的初始化文件的生成,也已支持基于LL库的初始化文件及工程的生成,对于已经比较熟悉STM32应用或关注代码效率的开发人员来说,可以优先考虑使用LL库。

     

    STM32CubeMX:

    STM32CubeMX是一个图形化的软件配置工具,使用图形向导可以生成STM32初始化代码工程。STM32CubeMX这个工具是ST目前重点打造的工具,目的就是为了方便开发者,节约时间,提高开发效率

    官方地址:

    STM32CubeMX特性:

    1.直观的选择 STM32 微控制器(MCU)和微处理器(MPU)。

    2.丰富易用的图形化界面: -自动解决配置冲突 -具有参数约束动态验证的外设和中间件功能模式 -时钟树与配置的动态验证 -功耗预测

    3.生成初始化代码工程,包含:EWARM、 MDK-ARM、 TureSTUDIO、 SW4STM32等。

    4.针对部分MPU生成Linux设备树。

    5.可独立运行在Windows、Linux和macOS上使用,或作为 Eclipse 插件使用。

     

    安装 JRE:

    安装(安装一直下一步即可)

    由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用, 建议到官网下载最新版本JRE。

    地址:

     

     

    下载STM32CubeMx和HAL库

    官方地址:

    HAL库下载:

     CubeMX下载并安装(安装一直下一步即可):

    HAL库的安装:(LL库也在)

    HAL库,也可理解为软件包,有在线安装、离线安装两种方式。

    在线安装

    打开安装好的 STM32CubeMX 软件, 进入库管理界面(Help -> Manage embedded...),会有一个列表, 勾选上你要安装的HAL库, 点击“Install Now” 直到安装成功。 如下图:

    这种方式比较简单,需要联网在线下载,可能需要等待一段时间。如果刷新之后,可以看到最新版本,以及一些老版本HAL库。

    离线安装:

    离线安装的前提是需要下载好离线包,方法有两种:1.从库管理界面直接导入离线包。2.直接解压离线包到指定路径下。

    1.导入离线包

     

    2.直接解压 Help -> Updater Settings得到HAL库路径(直接解压HAL库离线包,注意路径、文件夹名需一致)

    ------------恢复内容开始------------

    STM32三种库:

    库的类型:

    ST已经推出了三种库函数,以方便客户快速开发STM32系列MCU。从15、16年开始,ST逐渐停止了对标准外设库的更新和维护,转向了HAL和LL库。
    (1) 标准外设驱动库SPL                     Standard Peripheral Library
    (2) Cube HAL                                     Hardware Abstraction Layer硬件抽象层库
    (3) Cube LL以及直接操作寄存器       Low-layer底层库

    几种库的区别:

    ①Cube LL库的效率优于HAL库的,几乎和直接写寄存器的效率相差无几。

    ②HAL库函数因为要顾及整个STM32系列间的代码高度兼容与可移植性,代码相对庞大。对于刚接触STM32的人来说,非常易于上手做些基本的评估和验证,入门快捷。

    ③LL库的出现,是对HAL库的有力补充。相比HAL库用户,LL库用户需要对MCU及相应外设有更为细致的了解

    目前,STM32cubeMX不但支持基于HAL库的初始化文件的生成,也已支持基于LL库的初始化文件及工程的生成,对于已经比较熟悉STM32应用或关注代码效率的开发人员来说,可以优先考虑使用LL库。

     

    STM32CubeMX:

    STM32CubeMX是一个图形化的软件配置工具,使用图形向导可以生成STM32初始化代码工程。STM32CubeMX这个工具是ST目前重点打造的工具,目的就是为了方便开发者,节约时间,提高开发效率

    官方地址:

    STM32CubeMX特性:

    1.直观的选择 STM32 微控制器(MCU)和微处理器(MPU)。

    2.丰富易用的图形化界面: -自动解决配置冲突 -具有参数约束动态验证的外设和中间件功能模式 -时钟树与配置的动态验证 -功耗预测

    3.生成初始化代码工程,包含:EWARM、 MDK-ARM、 TureSTUDIO、 SW4STM32等。

    4.针对部分MPU生成Linux设备树。

    5.可独立运行在Windows、Linux和macOS上使用,或作为 Eclipse 插件使用。

     

    安装 JRE:

    安装(安装一直下一步即可)

    由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用, 建议到官网下载最新版本JRE。

    地址:

     

     

    下载STM32CubeMx和HAL库

    官方地址:

    HAL库下载:

     CubeMX下载并安装(安装一直下一步即可):

    HAL库的安装:(LL库也在)

    HAL库,也可理解为软件包,有在线安装、离线安装两种方式。

    在线安装

    打开安装好的 STM32CubeMX 软件, 进入库管理界面(Help -> Manage embedded...),会有一个列表, 勾选上你要安装的HAL库, 点击“Install Now” 直到安装成功。 如下图:

    这种方式比较简单,需要联网在线下载,可能需要等待一段时间。如果刷新之后,可以看到最新版本,以及一些老版本HAL库。

    离线安装:

    离线安装的前提是需要下载好离线包,方法有两种:1.从库管理界面直接导入离线包。2.直接解压离线包到指定路径下。

    1.导入离线包

     

    2.直接解压 Help -> Updater Settings得到HAL库路径(直接解压HAL库离线包,注意路径、文件夹名需一致)

     

     

    创建工程:

    选择自己型号MCU,到生成代码并成功运行的创建过程

    进入MCU选择器:(进入选择器时会联网更新数据库,可能需要等待一下)

     选择对应型号MCU

     

     时钟源选择

     如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC(如下图)。如果使用默认内部时钟(HSI),这一步可以略过。

     

     选择GPIO(LED)引脚

     

    配置时钟Clock

    STM32CubeMX配置时钟的界面非常方便,有很多提示(比如最大时钟),很多地方直接点击选择就行了。

    默认高速时钟是使用内部(HSI),而且CPU时钟配置的比较低。以我选择的STM32F103,外部8M晶振为例(如下图)。

     工程管理

     工程管理器的内容比较多,大部分都默认即可,这里讲述几个要点(如下图),更多选项后期详细讲述。

     

    生成代码

    以上操作就基本配置完成了一个简单的Demo工程,只需要点击“生成代码”即可。

     添加代码

     当然,以上生成的代码还不够完善,需要添加自己的应用代码

     

    生成的MDK-ARM工程,编译下载之后,默认是不会运行代码,需要重新复位一次才能运行,或你自己配置一下(如下图)。

     

     那么是不是每改变引脚或功能时,都要在CubeMX上面进行一次配置呢?

  • 相关阅读:
    立方体
    file 图片预览
    [LeetCode][JavaScript]Single Number III
    [LeetCode][JavaScript]Longest Substring Without Repeating Characters
    [LeetCode][JavaScript]Missing Number
    [LeetCode][JavaScript]Course Schedule II
    [LeetCode][JavaScript]Course Schedule
    [LeetCode][JavaScript]Ugly Number II
    [LeetCode][JavaScript]Ugly Number
    [LeetCode][JavaScript]Single Number II
  • 原文地址:https://www.cnblogs.com/darren-pty/p/13302199.html
Copyright © 2011-2022 走看看