实用指南:【STM32实践篇】:STM32CubeMX 的使用

文章目录1. 安装 STM32CubeMX2. 安装 MCU 固件包2.1 设置软件库文件路径2.2 管理嵌入式软件包3. 使用 CubeMX 新建项目3.1 选择 MCU 创建工程3.2 MCU 图形化部署界面3.2.1 引脚与配置3.2.2 时钟配置3.2.3 项目管理4. 点亮 LED 灯4.1 硬件电路4.2 CubeMX 设置

1. 安装 STM32CubeMXSTM32CubeMX 下载地址Java 开发工具包 (JDK) 下载地址注意事项:

安装目录不能带有汉字、空格和非下划线的符号,由于 CubeMX 对中文的支持不太好。CubeMX 需要用到 Java 运行环境 JRE,建议开发人员直接下载安装 JDK。我设置的安装目录:D:\IDE\ST\STM32CubeMX

2. 安装 MCU 固件包2.1 设置软件库文件路径

菜单项:Help --> Connection & Updates

MCU 固件包和扩展包安装路径,建议设置后就不再更改,我设置的路径:D:\IDE\ST\STM32Cube\Repository设置 CubeMX 的更新方式为:手动检查更新设置 CubeMX 启动时是否自动刷新已安装软件库的数据和文档为:不在 CubeMX 启动时自动刷新2.2 管理嵌入式软件包菜单项:Help --> Manage embedded software packages找到所需系列芯片,例如:STM32F4,选择最新版本,点击 Install 安装。

在路径 D:\IDE\ST\STM32Cube\Repository\STM32Cube_FW_F4_V1.28.3 下面可以看到安装好的固件库。

3. 使用 CubeMX 新建任务3.1 选择 MCU 创建项目菜单项:File --> New Project

按照筛选条件选择 MCU,如果已知具体型号,可以在搜索框直接输入。通过筛选或搜索的 MCU 列表,会显现出具体型号,封装,Flash,RAM 等参数,单击星号收藏,双击MCU型号进入项目管理视图。MCU 资料显示区域。3.2 MCU 图形化配备界面

引脚与配置:对 MCU 的平台内核,外设,中间件和引脚进行配置。时钟配置:通过时钟树对 MCU 的各个时钟信号频率调整。项目管理:项目的一些设置。工具:进行功耗计算等。3.2.1 引脚与配置组件列表:MCU 可以配置的系统内核,外设和中间件列表,可分组显示或者按照字母顺序显示。组件的模式和配置:例如组件选中 RCC,可能在上方设置模式,下方设置参数。引脚视图:显示各引脚设置情况。亮黄色引脚:电源或接地引脚,例如:VDD。黄绿色引脚:一种功能的系统引脚,例如:NRST,这些引脚不能进行配置。未调整功能的引脚为灰色。已经配置特性的引脚为绿色。在引脚上单击鼠标左键,弹出引脚功能选择菜单,例如引脚在 PF9 上单击时,允许看到 PF9 可能作为 GPIO,ADC,定时器等使用:将 PF9 引脚设置好机制后,在引脚上单击鼠标右键,会调出一个快捷菜单。

Enter User Label:输入用户标签,标签将取代原来的引脚信号名称。Signal Pinning/Unpinning:信号绑定/解绑,将引脚与功能绑定/解绑。框架视图:呈现 MCU 已经设置的各种组件。3.2.2 时钟安装先设置 RCC 的模式,将 HSE 和 LSE 都设置为启用外部晶振,并且启用 MCO1 和 MCO2,MCO2 与音频时钟输入不能同时使用。启用 RTC。时钟源,时钟信号或选择器的作用如下:

HSE 时钟源:设置为使用外部晶振,开发板的是 8MHz 晶振,填入8。HSI RC 振荡器:频率为 16MHz 的时钟信号。PLL 时钟源选择器:输入时钟选择 HSE 或 HSI,通过分频和倍频产生时钟信号,输出时钟信号有 PLLCLK,48MHz 时钟信号,PLLI2S。系统时钟选择器:系统时钟 SYSCLK 是为 MCU 大部分组件提供时钟信号的时钟源,输入时钟有 HSE,HSI,PLLCLK。Enable CSS 按钮可以启用时钟安全系统,使用 HSE 时该按钮才有效,当 HSE 发生故障,会发出一个 CSSI 的中断信号,自动切换到 HSI 作为时钟源。平台时钟 SYSCLK:文本框不能修改它的值,该时钟经过 AHB 预分频器后生成 HCLK 时钟信号。HCLK 时钟:CPU 的时钟信号,为 AHB 总线,内核,APB1 总线和 APB2 总线提供时钟,HCLK 最高频率 168MHz,可以在文本框修改,例如输入 72 后,软件会自动进行修改。音频时钟输入:在 RCC 中去掉 MCO2,选择 Audio Clock Input(I2S_CKIN),就可以在此输入一个外部的时钟源作为 I2S 接口的时钟信号。I2S 接口时钟源选择器:从两个输入时钟 PLLI2SCLK,I2S_CKIN 里面选择一个作为 I2S 接口的时钟信号。MCO 时钟输出和选择器:MCO 时 MCU 为外部设备给出的时钟源。LSE 时钟源:固定为 32.768MHz,作为 RTC 的时钟源,经过多次分频后,可以得到精确的 1Hz 信号。LSI RC 振荡器:MCU 内部产生的 32KHz 的时钟信号,可以为 RTC 和 IWDG 提供时钟信号。RTC 时钟选择器:可选时钟源 LSI,LSE 和 HSE,要使 RTC 精度高,应该选择 32.768MHz 的 LSE 作为时钟源。3.2.3 项目管理Project 页面:项目名称,保存路径,导出代码的 IDE 软件等。C 语言程序得一个 main() 函数,不勾选。选择导出的 C 语言程序的工具链或 IDE 软件。其余选项暂时保持默认。Code Generator 页面:设置生成 C 语言代码的一些选项。勾选,为每一种外设生成的初始化代码将会有 .c和.h 两个记录。通过设置所有自由引脚类型为 Analog,这样能够优化功耗。启用 Full Assert ,HAL 库中每个函数都会对函数的输入参数进行检查,如果检查出错,会返回出错代码的文件名和所在行。Advanced Settings 页面,生成 C 语言代码的一些高级设置,例如:外设初始化代码是使用 HAL 库还是 LL 库。给组件选择使用HAL库还是LL库。勾选此项,在main()函数的外设初始化部分不会调用这个函数,然而函数的完整代码还是会生成的,如何调用由编程者自己决定。是否在函数原型前面加上关键字 static,使文件变为文件内的私有函数。如果在 Code Generator 页面勾选了 Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral,则无论是否勾选 Visibility(Static) ,外设的初始化原型函数前面都不会加 static 关键字,因为在 .h记录里声明的函数原型对外界就是可见的。4. 点亮 LED 灯4.1 硬件电路从原理图中允许看出,控制引脚 PF9,PF10为GPIO输出引脚,且输出低电平可以点亮 LED 灯。

4.2 CubeMX 设置PF9 和 PF10 设置为推挽输出低电平,写上标签 LED0 和 LED1。

时钟设置:HSE 选择晶振 8MHz,HCLK 设置为168MHz。

组件 SYS 设置为串行调试接口

设置项目名称和生成 .c和.h对。

点击生成代码。

Top