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

相关推荐
初九之潜龙勿用32 分钟前
C#校验画布签名图片是否为空白
开发语言·ui·c#·.net
嵌入式大圣1 小时前
单片机结合OpenCV
单片机·嵌入式硬件·opencv
吾与谁归in2 小时前
【C#设计模式(13)——代理模式(Proxy Pattern)】
设计模式·c#·代理模式
吾与谁归in2 小时前
【C#设计模式(14)——责任链模式( Chain-of-responsibility Pattern)】
设计模式·c#·责任链模式
日晨难再3 小时前
嵌入式:STM32的启动(Startup)文件解析
stm32·单片机·嵌入式硬件
神仙别闹3 小时前
基于C#和Sql Server 2008实现的(WinForm)订单生成系统
开发语言·c#
yufengxinpian3 小时前
集成了高性能ARM Cortex-M0+处理器的一款SimpleLink 2.4 GHz无线模块-RF-BM-2340B1
单片机·嵌入式硬件·音视频·智能硬件
__基本操作__4 小时前
历遍单片机下的IIC设备[ESP--0]
单片机·嵌入式硬件
网易独家音乐人Mike Zhou10 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
zy张起灵11 小时前
48v72v-100v转12v 10A大功率转换电源方案CSM3100SK
经验分享·嵌入式硬件·硬件工程