【11】STM32·HAL库开发-STM32CubeMX简介、安装 | 新建STM32CubeMX工程步骤

目录

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灯交替闪烁。

4.总结

相关推荐
军训猫猫头1 小时前
20.抽卡只有金,带保底(WPF) C#
ui·c#·wpf
yutian06067 小时前
Keil MDK下载程序后MCU自动重启设置
单片机·嵌入式硬件·keil
析木不会编程10 小时前
【小白51单片机专用教程】protues仿真独立按键控制LED
单片机·嵌入式硬件·51单片机
向宇it12 小时前
【从零开始入门unity游戏开发之——C#篇25】C#面向对象动态多态——virtual、override 和 base 关键字、抽象类和抽象方法
java·开发语言·unity·c#·游戏引擎
向宇it13 小时前
【从零开始入门unity游戏开发之——C#篇24】C#面向对象继承——万物之父(object)、装箱和拆箱、sealed 密封类
java·开发语言·unity·c#·游戏引擎
枯无穷肉14 小时前
stm32制作CAN适配器4--WinUsb的使用
stm32·单片机·嵌入式硬件
不过四级不改名67714 小时前
基于HAL库的stm32的can收发实验
stm32·单片机·嵌入式硬件
嵌入式科普14 小时前
十一、从0开始卷出一个新项目之瑞萨RA6M5串口DTC接收不定长
c语言·stm32·cubeide·e2studio·ra6m5·dma接收不定长
嵌入式大圣14 小时前
单片机UDP数据透传
单片机·嵌入式硬件·udp
云山工作室15 小时前
基于单片机的视力保护及身姿矫正器设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·毕设