目录
- 1.STM32CubeMX简介(了解)
- 2.STM32CubeMX安装(了解)
- 2.1STM32CubeMX软件获取
- 2.1.1获取Java软件
- 2.1.2获取STM32CubeMX软件
- 2.2搭建Java运行环境
- 2.3安装STM32CubeMX软件(必须先2.2再2.3)
- 2.4下载和关联STM32cube固件包
- 3.新建STMCubeMX工程步骤(熟悉)
- 3.1工程初步建立
- 3.2时钟模块配置
- 3.3时钟系统配置
- 3.4GPIO引脚配置
- 3.5Cortex内核配置
- 3.6生成工程源码
- 3.7编写用户程序
- 4.总结
1.STM32CubeMX简介(了解)
STM32CubeMX是ST开发的一款图形配置工具,可通过配置自动生成初始化代码(并不包括逻辑代码)。以下是STM32CubeMX官方宣传图片,适用于Windows和macOS系统,用于生成初始化代码,一个图形配置工具,搭配不同系列的STM32Cube固件包,即可支持不同系列的STM32芯片,初始化代码使用的是HAL库。
2.STM32CubeMX安装(了解)
2.1STM32CubeMX软件获取
2.1.1获取Java软件
Java下载链接
2.1.2获取STM32CubeMX软件
STM32CubeMX软件下载链接,首次下载需要注册,注册完点击邮箱中的验证,即可进行下载。
2.2搭建Java运行环境
1.选择合适的版本进行安装:64位电脑选择x64, 32位电脑选择X86;
2.检测是否正常安装:Win+R输入cmd,打开指令窗口,输入java -version(java后面有个空格)
2.3安装STM32CubeMX软件(必须先2.2再2.3)
双击”SetupSTM32CubeMX-6.3.0-Win.exe”,然后按部就班进行安装,建议不要安装在C盘,占用系统盘内存,安装路径不能有中文字符。
2.4下载和关联STM32cube固件包
建议在D盘新建一个仓库用于存放STM32Cube固件包,路径:D:\STM32Cube\Repository。需要自己创建文件夹。然后打开软件,【Help】->【Updater Settings】->设置仓库所在路径(我这里安装到了与STM32CubMX相同目录,只要方便找到即可)->【OK】:
下面就是关联固件包:【Help】->【Manager embedded software packages】->有两种关联方式:1、联网下载自动解压到路径D:\A_worksoftware\STM32Cube\Repository中。2、本地关联,要找到下载的压缩包或者直接将解压好的整个文件夹复制到路径中。->选择自己要开发的STM系列,进行安装即可方框中显示绿色表示安装成功。
3.新建STMCubeMX工程步骤(熟悉)
STM32CubeMX用户手册下载链接,该手册说明了STM32CubeMX如何使用,可以作为参考。
3.1工程初步建立
新建工程,选择芯片型号。【File】->【New Project】(首次点击需要下载一些东西)。->双击芯片型号。
可以点击芯片型号前面的⭐,点击左上角的⭐即可快捷找到自己经常使用的型号。
3.2时钟模块配置
设置HSE(高速外部时钟)、LSE(低速外部时钟)、MCO(芯片往外部输出的时钟)。【System Core】->【RCC】->【HSE】选择【Crystal/Ceramic Resonator】(外部时钟);【LSE】也选择外部时钟。如果点击【Master Clock Output】会让特定的IO口往外部输出时钟频率(此处以跑马灯为例,不需g要勾选此项)。
3.3时钟系统配置
PLL(锁相环)、SYSCLK(系统时钟)、AHB、APB1、APB2等等(不同系列设置不同)。时钟系统在【Clock Configuration】配置,我的开发板是8Mhz的高速外部时钟HSE——>锁相环PLL选择HSE路线——>系统时钟SYSCLK选择锁相环时钟PLLCLK,选择倍频使得SYSCLK系统时钟为180MHz或者在框中直接输入——>选择APB1分频使得红色警告消失。
3.4GPIO引脚配置
以连接在LED灯的IO为例介绍如何配置。阿波罗开发板LED0连接在PB1引脚,LED1在PD2引脚。回到【Pinout & Configuration】界面——>右下角搜索PD2,芯片引脚会闪烁,单击【PD2】引脚——>【GPIO_Output】。同理,PA8也是【GPIO_Output】。
配置输出速度等:【System view】——>【GPIO】——>选择要配置的引脚,配置【GPIO output level】为High(由于LED0、LED1外接高电平,引脚为高电平时灯熄灭,所以设置默认模式为高电平)、【GPIO mode】为Output Push Pull推挽输出或者Output open drain开漏输出都可、【GPIO Pull-up/Pull-down】无上拉或下拉、【Maximum output speed】为Low、【User Label】设置宏令PA8为LED0,令PD2为LED1。
3.5Cortex内核配置
SYS( DEBUG )配置、NVIC(优先级分组)。【SYS】——>【Debug】选择Senal Wire(也就是SW模式)。
【NVIC】——>【Priority Group】配置中断优先级分组为2
3.6生成工程源码
设置工程,MDK等,最后生成代码工程。【Project Manager】——>【Project Name】设置工程名——>【Project Location】设置工程保存路径——>【Appication Structure】选择先进型模板或基础型模板,先进型模板将基础型模板中的inc和Src文件放到了Core文件中。——>【Toolchain/IDE】选择编译器【Min Version】选择版本——>【Firmware Package Name and Version】选择固件包版本。其他为默认即可
【Code Generator】——>选择仅复制需要的HAL库文件,并且将.c和.h分开放置到Core文件夹中。——>Ctrl+S保存文件。——>点击左上角的【GNERATE CODE】
3.7编写用户程序
在main.c文件预留的位置编写代码。一定要写在BEGIN和END之间,否则在生成代码时会被覆盖。将程序下载到开发板,可以看到LED灯交替闪烁。