打印
[其他ST产品]

STM32CubeMX入门

[复制链接]
楼主: 无法去污粉
手机看帖
扫描二维码
随时随地手机跟帖
61
无法去污粉|  楼主 | 2024-5-2 01:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
HSE 和 LSE 时钟源设置
  进入工程主设计界面后,首先设置时钟源 HSE 和 LSE。如图所示。
设置时钟源 HSE 和 LSE

使用特权

评论回复
62
无法去污粉|  楼主 | 2024-5-2 01:16 | 只看该作者
标号④和⑤,我们都选择了 Crystal/Ceramic Resonator,表示外部晶振作为它们的时钟源。我们开发板的外部高速晶振和外部低速晶振分别是:8MHZ 和 32.768KHZ,所以 HSE 时钟频率就是 8MHZ,LSE 时钟频率就是 32.768KHZ。
  选项 Master Clock Output 1 用来选择是否使能 MCO1 引脚时钟输出。

使用特权

评论回复
63
无法去污粉|  楼主 | 2024-5-2 01:16 | 只看该作者
时钟系统(时钟树)配置

使用特权

评论回复
64
无法去污粉|  楼主 | 2024-5-2 01:16 | 只看该作者
点击 Clock Configuration 选项卡即可进入时钟系统配置栏,如下图所示:
时钟系统配置栏

使用特权

评论回复
65
无法去污粉|  楼主 | 2024-5-2 01:16 | 只看该作者
进入 Clock Configuration 配置栏之后可以看到,界面展现一个完整的 STM32F1 时钟系统框图。从这个时钟树配置图可以看出,配置的主要是外部晶振大小,分频系数,倍频系数以及选择器。在我们配置的工程中,时钟值会动态更新,如果某个时钟值在配置过程中超过允许值,那么相应的选项框会红色提示。
  这里,我们将配置一个以 HSE 为时钟源,配置 PLL 相关参数,然后系统时钟选择 PLLCLK为时钟源,最终配置系统时钟为 72MHz 的过程。同时,还配置了 AHB,APB1,APB 和 Systick的相关分频系数。由于图片比较大,我们把主要的配置部分分两部分来讲解,第一部分是配置系统时钟,第二部分是配置 SYSTICK、AHB、APB1 和 APB2 的分频系数。首先我们来看看第一部分配置如下图所示:
系统时钟配置图

使用特权

评论回复
66
无法去污粉|  楼主 | 2024-5-2 01:17 | 只看该作者
我们把系统时钟配置分为七个步骤,分别用标号 1~5 表示,详细过程为:
  ① 时钟源参数设置:我们选择 HSE 为时钟源,所以我们要根据硬件实际的高速晶振频率(这里我们是 8MHZ)填写。
  ② 时钟源选择:我们配置选择器选择 HSE 即可。
  ③ PLL 倍频系数 PLLMUL 配置。倍频系数 PLLMUL 我们设置为 9。
  ④ 系统时钟时钟源选择:PLL,HSI 还是 HSE。我们选择 PLL,选择器选择 PLLCLK 即可。
  ⑤ 经过上面配置以后此时 SYSCLK=72MHz。
经过上面的 5 个步骤,就配置好 STM32F1 的系统时钟为 72MHz。接下来我们还需要配置AHB、APB1、APB2 和 Systick 的分频系数,为 STM32 的片上外设或 M3 内核设置对应的工作时钟,为后续使用这些硬件功能做好准备。配置如下图所示:
AHB、APB1、APB2、APB3 和 APB4 总线时钟配置

使用特权

评论回复
67
无法去污粉|  楼主 | 2024-5-2 01:17 | 只看该作者
 AHB、APB1 和 APB2 总线时钟以及 Systick 时钟的来源于系统时钟 SYSCLK。其中 AHB总线时钟 HCLK 由 SYSCLK 经过 AHB 预分频器之后得到,如果我们要设置 HCLK 为 72MHz(最大为 72Mhz),那么我们只需要配置图中标号⑥的地方为 1 即可。得到 HCLK 之后,接下来我们将在图标号⑦~⑨处同样的方法依次配置 Systick、APB1 和 APB 分频系数分别为 1、2 和 1。
  注意!systick固定为72MHz,配置完成之后,那么HCLK=72MHZ,Systic=72MHz,PCLK1=36MHz,PCLK2=72MHz,这和之前例程配置的时钟是主频一样的。
  以上方法是手动计算的方法,是为了帮助我们更好地去认识 STM32 时钟的配置方法,当然CubeMX 也提供了更简单的方法:在上图的“HCLK(MHz)”位置,实际上是可以编辑的。我们直接输入我们要的主频,这里是 72Mzh,按回车键,CubeMX 会帮我们提供一种设置主频和其它时钟的建议,选择是后会由软件自动配置好,当然只有启用外部的晶振后才能配置到72Mhz 的时钟,这里大家自己尝试一下就清楚了,我们不展开讲述了。

使用特权

评论回复
68
无法去污粉|  楼主 | 2024-5-2 01:17 | 只看该作者
GPIO 功能引脚配置

使用特权

评论回复
69
无法去污粉|  楼主 | 2024-5-2 01:17 | 只看该作者

使用特权

评论回复
70
无法去污粉|  楼主 | 2024-5-2 01:17 | 只看该作者
使用 STM32CubeMX 工具配置 STM32F1 的 GPIO 口。STM32F103 战舰开发板的 PB5 和 PE5 引脚各连接一个 LED 灯,我们来学习配置这两个 IO 口的相关参数。这里我们回到 STM32CubeMX 的 Pinout&Configuration 选项,在搜索栏输入 PB5 后回车,可以在引脚图中显示位置,如下图所示:
搜索引脚位置

使用特权

评论回复
71
无法去污粉|  楼主 | 2024-5-2 01:17 | 只看该作者
接下来,我们在下图引脚图中点击 PB5,在弹出的下拉菜单中,选择 IO 口的功能为 GPIO_Output。操作方法如下图所示:
配置 GPIO 模式

使用特权

评论回复
72
无法去污粉|  楼主 | 2024-5-2 01:18 | 只看该作者
同样的方法,我们配置 PE5 选择功能为 GPIO_Oput 即可。设置好即可看到引脚从灰色变成绿色,标识该管脚已经启用。这里我们需要说明一下,如果我们要配置 IO 口为外部中断引脚或者其他复用功能,我们选择相应的选项即可。配置完 IO 口功能之后,还要配置 IO 口的速度,上下拉等参数。这些参数我们通过 System Core 下的 GPIO 选项进行配置,如图所示。
GPIO 选项

使用特权

评论回复
73
无法去污粉|  楼主 | 2024-5-2 01:18 | 只看该作者
我们先配置 PB5,PE5 和 PB5 配置方法一样的。点击图 10.3.3.12 的④号框里面的 PB5,配置如图所示。
配置 GPIO 口详细参数

使用特权

评论回复
74
无法去污粉|  楼主 | 2024-5-2 01:18 | 只看该作者

GPIO output level 是 IO 的初始值,由于 LED 一端接 VCC,另一端接 GPIO,故要点亮 LED灯时,使 GPIO 输出低电平即可。为了一开始让 LED 灯熄灭,我们设置初始值输出高电平。
  GPIO mode 我们已经在视图中配置为推挽输出了,这里不需要修改。
  GPIO Pull-up/Pull-down 默认是无上下拉,我们这里用默认配置。
  Maximum output speed 输出速度配置,默认是低速,我们设置为高速。
  User Label 用户符号,我们可以给 PB5 起一个别的名字 LED0。
  PE5 也是按照这样的方法配置即可。

使用特权

评论回复
75
无法去污粉|  楼主 | 2024-5-2 01:18 | 只看该作者

使用特权

评论回复
76
无法去污粉|  楼主 | 2024-5-2 01:19 | 只看该作者
配置 Debug 选项
  由于 CubeMX 默认把 Debug 选项关闭了,这样会给我们带来麻烦:用 CubeMX 生成的工程编译下载一次后,后续再次下载就会提示错误,因此我们要把 Debug 选项打开。这里有多种选择,我们设置成图所示的情况即可。
打开 Debug 选项

使用特权

评论回复
77
无法去污粉|  楼主 | 2024-5-2 01:19 | 只看该作者
如果已经不小心关闭了 Debug 选项,那么下次下载的时候按住复位键,等到工程提示的时候松开复位键即可,因为 STM32 的芯片默认复位上电时的 Debug 引脚功能是开启的。

使用特权

评论回复
78
无法去污粉|  楼主 | 2024-5-2 01:20 | 只看该作者
配置 NVIC中断

使用特权

评论回复
79
无法去污粉|  楼主 | 2024-5-2 01:20 | 只看该作者
生成工程源码
  接下来我们学习怎么设置生成一个工程,如图 10.3.3.15 所示。选择 Project Manager-> Project选项用来配置工程的选项,我们了解一下里面的信息。
  Project Name:工程名称,填入工程名称(半角,不能有中文字符)
  Project Location:工程保存路径,点击 Browse 选择保存的位置(半角,不能有中文字符)
  Toolchain Folder Location:工具链文件夹位置,默认即可。
  Application Structure:应用的结构,选择 Basic(基础),不勾选 Do not generate the main(),因为我们要其生成 main 函数。
  Toolchain/IDE:工具链/集成开发环境,我们使用 Keil,因此选择 MDK-ARM,Min Version 选择 V5.27,这里根据 CubeMX 的版本可能会有差异,我们默认使用 V5 以上的版本即可。
  Linker Settings 链接器设置:
  Minimum Heap Size 最小堆大小,默认(大工程需按需调整)。
  Minimum Stack Size 最小栈大小,默认(大工程需按需调整)。
  MCU and Firmware Package 是 MCU 及固件包设置:
  MCU Reference:目标 MCU 系列名称。
  Firmware Package Name and Version:固件包名称及版本。
  勾选 Use Default Firmware Location,文本框里面的路径就是固件包的存储地址,我们使用默认地址即可。(这里因为我有两个版本的固件包,所以它默认使用最新的,这个关系不大,就用新的)。这样工程生成的设置就设置好了,如图所示。

使用特权

评论回复
80
无法去污粉|  楼主 | 2024-5-2 01:20 | 只看该作者
工程配置

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则