【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.总结

相关推荐
天马37981 小时前
C# 泛型使用案例_C# 泛型使用整理
开发语言·c#·c# 泛型使用案例·c# 泛型使用整理
学步_技术3 小时前
自动驾驶系列—自动驾驶MCU架构全方位解析:从单核到多核的选型指南与应用实例
单片机·mcu·架构·自动驾驶
yi碗汤园3 小时前
C#自定义工具类-数组工具类
开发语言·算法·c#
weixin_460186863 小时前
基于51单片机的温湿度上下限监测预警proteus仿真
嵌入式硬件·51单片机·proteus
Qian Xiaoo3 小时前
定时器定时中断&定时器外部中断
stm32·单片机·嵌入式硬件
会编程的果子君5 小时前
51单片机系列-串口(UART)通信技术
单片机·嵌入式硬件·51单片机
笑非不退5 小时前
C# 加载引用 XAML cs中动态加载xaml xaml中引用xaml
服务器·windows·c#
不入门程序员6 小时前
C#——switch案例讲解
java·前端·c#
思忖小下6 小时前
c#代码介绍23种设计模式_10组合模式
设计模式·c#·组合模式
水饺编程6 小时前
【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,1-1
linux·嵌入式硬件·fpga开发