【软件入门】STM32CubeMX快速入门

更正

2022.07.03

发现2.4一节中代码位置有问题, 没有添加到*USER CODE BEGIN …USER CODE END…*之间,这样对代码的运行不会产生影响,但是如果更新CubeMX配置会导致代码丢失,更正如下:

  /* USER CODE BEGIN WHILE */
  while (1)
  {
		HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);
		HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_RESET);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

STM32CubeMX+HAL手摸手教学

这个系列的博客主要是从0开始讲解STM32CubeMX和HAL库,需要有C语言的基础和一定标准库的基础。笔者也是刚入门,希望把我走过的弯路分享给大家,让大家少走一些弯路。如果有问题可以一起讨论、互相学习,也希望大佬们能给予指点,提出宝贵的意见。

目前该系列的博客如下(本帖长期更新):

STM32CubeMX+HAL(1)实现跑马灯_芜湖_的博客-CSDN博客

STM32CubeMX+HAL(2)实现基础按键_芜湖_的博客-CSDN博客

STM32CubeMX+HAL(3)实现简单串口通信_芜湖_的博客-CSDN博客

STM32CubeMX+HAL(4)实现外部中断_芜湖_的博客-CSDN博客


以下为原文


STM32CubeMX快速入门

前一阵用正点原子的mini板写了个初代指纹锁,然而由于自己的年少无知,代码几乎都是用寄存器来写的,导致代码的可移植性非常的差。因此决定学习一下CubeMX和HAL库。

1.软件下载

1.1.更新JRE

如果你的电脑上已经有JRE则可以跳过这一步,如果不是最新版的还是建议更新至新版,不是最新版可能会导致CubeMX卡顿。

由于 STM32CubeMX 软件是基于JAVA环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用。安装JRE也非常简单,直接在官网Java | Oracle下载即可。在下载的同时可以把电脑上原先的老版JRE卸载,搜索java进行卸载即可:

在这里插入图片描述

下载好后安装即可。

1.2.配置CubeMX

1.2.1.下载CubeMX

在ST官网即可找到CubeMX的下载链接,具体访问STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics即可。

在这里插入图片描述

在这里选择需要的版本即可,以windows为例。版本可以直接选最新版本的,如果有什么特殊的需求也可以选老版。下载这个ST会给你发一个邮件,收到邮件后即可完成下载。

1.2.2.安装CubeMX

安装的过程中有几步需要注意一下。

在这里插入图片描述

第一条必须选,是阅读须知;第二条的话可选可不选,内容大概是是否同意ST公司收集你的个人使用信息等。

在这里插入图片描述

创建快捷方式勾上就可以。

1.2.3.配置CubeMX

打开CubeMX,点击Help,选择Manage embedded software packages:

在这里插入图片描述

然后找到你使用的芯片系列即可,笔者使用的是正点原子mini板,芯片是STM32F103RCT6,因此下载F1系列的安装包:

在这里插入图片描述

版本下载最新的这个即可。

2.用CubeMX点个灯

正点原子mini板的芯片是STM32F103RCT6,两个LED分别为PA8和PD2,其他不同的硬件平台还需自己看一下原理图。

2.1.选择芯片

打开CubeMX,在File里面选择New Project,搜索想要的芯片:

在这里插入图片描述

如果这个芯片常用,可以添加到收藏,点一下五角星即可。这样在以后用这款芯片开发时,不需要再搜索,只需要点左上角的五角星即可,笔者这里收藏了F103RCT6和F103ZET6两款:

在这里插入图片描述

此外,还可以按需筛选芯片,点击左侧展开即可筛选,这里不再介绍,读者可以自己探索。

2.2.点灯相关配置

左侧可以更换两种显示方式,一种是按类别,一种是按A-Z显示,笔者选择的是A-Z:

在这里插入图片描述

2.2.1.SYS

在SYS中要选择Debug,如果不选的话则只可以烧录一次。或者严谨地说,也可以烧录,但是比较麻烦,为了少点麻烦最好选上。笔者使用的是ST-Link,选择如下:
在这里插入图片描述

在SDIO中选择Disable即可:

在这里插入图片描述

ST-Link虽然有两大排线,但是其实只用其中4根即可,一个VCC,一个GND,另外两个如图中所示:SWCLK和SWDIO。这部分先挖个坑,以后单独写一篇博客简单介绍一下,这里就不浪费篇幅了。

2.2.2.RCC

HSE选择Crystal/Ceramic Resonnatorm,使用外部晶振:

在这里插入图片描述

然后点击上方的Clock Configuration,进行如下时钟源配置:

在这里插入图片描述

2.2.3.LED

以PA8为例(LED0),点击PA8,选择GPIO_Output:

在这里插入图片描述

点击左侧GPIO,然后点击PA8的这一行表格:

在这里插入图片描述

在下方就可以进行配置了。进行如下配置:

在这里插入图片描述

第一行是IO口输出高电平,这是为了让LED灭,具体原因查看mini板原理图即可;

第二行是模式,设置为推挽输出;

第三行是选择上拉/下拉,这里选上拉,原因同样查看原理图;

第四行是速度,在标准库里是具体到多少MHZ,如50MHZ、10MHZ,而在HAL库中是LOW、MEDIUM、HIGH三种,这里选低就可以。

还可以取个名字,如LED0:

在这里插入图片描述

LED1配置同理。配置好后如下所示:
在这里插入图片描述

此时左边会有警告,这些都可以暂时不管:

在这里插入图片描述

2.3.生成工程

点击Project Manager进行如下配置:

在这里插入图片描述

第一行是工程名;

第二行是地址,地址不要包含中文;

第五行是IDE选择和版本号选择,按需选择即可。

然后在左侧点击Code Generater,笔者是这样配置的:

在这里插入图片描述

第一个框中是三选一:

第一行是将HAL库的所有.C和.H都复制到所建工程中,这样体积大,但不需要后续再加;

第二行是只复制所需要的.C和.H,这样体积小,但后续需要再加;

第三行是不复制文件,直接从软件包存放位置导入.C和.H,这样体积更小,但是复制到别的电脑上的话可能会有麻烦。

第二个框中是多选:

第一行是每个外设生成一对.c、.h文件作为外设初始化;

第二行是重新生成时备份以前生成的文件;

第三行是重新生成时保留用户代码;

第四行是当没有重新生成时,删除以前生成的文件。

读者可以自己决定。

配置完后即可在右上角点击生成代码:

在这里插入图片描述

2.4.在MDK中添加相关代码点灯

打开gpio.c,可以看到用HAL库设置高电平是用了如下的函数:

在这里插入图片描述

打开函数的定义,可以知道,如果设置低电平只需要将SET换成RESET即可。在main函数while循环中添加如下代码:

在这里插入图片描述

注意添加代码的时候都要添加到 USER CODE BEGIN …USER CODE END… 之间,这样如果后期再更改CubeMX中的设置的话不会丢掉自己写的代码。
(已于2022.07.03更正)

2.5.烧录

笔者使用的是ST-Link,别忘了在Debug这里配置:

在这里插入图片描述

配置好后Download一下即可点灯成功:

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值