STM32CubeMx学习之——创建LED灯工程(基于STM32L071KBU)

STM32CubeMx学习之——创建LED灯工程(基于STM32L071KBU)

本文介绍利用STM32CubeMx来创建工程代码,并且将代码下载到开发板加以验证。本次实验芯片为STM32L071KBU。

1、准备工作

在这里插入图片描述

首先要安装STM32CubeMx、Java-ire、MDK-ARM(Keil5)还有F1和L0的软件支持包。因为STM32CubeMx的开发环境是基于Java运行的,所以要安装Java-Jre。安装软件支持包的目的是为了,用STM32CubeMx创建好工程代码后打开之后不会提示让你更新软件支持包,当然软件支持包也可以从Keil5软件中安装。这里我将上述软件贴到这里方便大家学习。以上软件的安装方法不再赘述!

以下是软件安装包百度云链接:
链接:https://pan.baidu.com/s/1e_tQfPFdmeCXWQtie4M35A
提取码:c7rm

2、STM32CubeMx固件配置

双击打开STM32CubeMx
安装完成STM32CubeMx之后,双击打开STM32CubeMx。

在这里插入图片描述
点击help和Manage embedded....
点击"help"中的"Manage embedded…"进入固件支持包安装界面

在这里插入图片描述
在这里插入图片描述
这里选择F1系列的固件库包,点击1.8.0版本进行安装。点击"Install Now"进行安装。也可以自行从官网下载固件包来进行本地导入,个人感觉这种直接安装的方法最为方便。

在这里插入图片描述
然后选择L0系列的固件库包,点击1.11.2版本进行安装。点击"Install Now"进行安装

安装好固件支持包之后就能根据自己想要的芯片型号来创建STM32CubeMx工程。

3、利用STM32CubeMx创建一个工程

在这里插入图片描述
选择"ACCESS TO MCU SELECTOR"来创建一个新的工程

在这里插入图片描述
进入到芯片型号选择界面,首先点击搜索,搜索自己想要创建工程所对应的芯片型号,这里我用到的是"STM32L071KBU",然后双击搜索结果,进入芯片配置的图形界面。

在这里插入图片描述
在这里插入图片描述
点击"System Core"下的"SYS",然后选择定时器源,这里选择系统自带的节拍定时器"Sys Tick",如果是想要点亮LED,这里配置不配置都可以。如果想要实现LED的闪烁,这里是要配置下,需要用到系统延迟。

在这里插入图片描述
然后点击"RCC",配置系统的时钟源,因为我用到的芯片没有外接晶振,所以我选择"Disable"。如果你用到的开发板上用到了外接的晶振,这里选择"Crystal/Ceramic Resonator"。如果是有外接的晶振,则还需要配置下时钟系统,如下图。
在这里插入图片描述
选择外接晶振的频率,然后选择倍频大小,这里可以根据芯片的数据手册来配置。

在这里插入图片描述
这里我选择开发板上的引脚为PC15,所以选择PC15输出模式为推挽输出。
在这里插入图片描述
将上述的工作配置完成之后,点击"Project Manager",首先给工程 起一个名字,叫做LED,然后选择工程文件的保存路径,这里可以根据自己的情况选择不同的保存路径。

在这里插入图片描述
然后选择软件开发环境为"MDK-ARM V5",这里STM32CubeMx创建好工程之后会生成"MDK-ARM"的工程文件。

在这里插入图片描述
在这里插入图片描述
然后点击左侧状态栏中的"Code Generator",将"Generate Peripherial…“的选项打钩,这个选项的意思为"在生成文件时,对每个外设都建立.c和.h文件”,在之后更改引脚配置重新生成工程文件时,软件也会在对应的.c和.h文件中修改外设初始化。

在这里插入图片描述
在这里插入图片描述
生成完代码之后,可以选择直接打开工程文件夹路径,也可以直接打开创建好的工程文件,也可以选择关闭,自行打开工程文件。

在这里插入图片描述

在这里插入图片描述

双击MDK-ARM工程文件打开。

4、程序配置

在这里插入图片描述
在这里插入图片描述
编译过之后,点击main函数下的.h头文件,选择"gpio.h"文件,往下拉,找到GPIO函数中的各个函数的声明,这里选择"HAL_GPIO_WritePin()"函数,将这个函数复制到,main函数下的while(1)中来运行该代码。

在这里插入图片描述
在这里插入图片描述
编译之后没有问题之后,来进行下载设置,首先点击上方状态栏的"魔术棒"标志进入设置,点击"Linker Debug",这里根据自己的 情况选择驱动调试。

在这里插入图片描述
在这里插入图片描述
配置完成之后,再编译一下,然后点击"DownLoad"进行下载。

如果是需要将LED设置为闪烁,只需要将main函数中的代码改成以下即可:

HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_RESET);	//将GPIOC15引脚电平设置为低,即打开LED
HAL_Delay(1000);																				//延迟1S
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);	//将GPIOC15引脚电平设置为高,即关闭LED
HAL_Delay(1000);																				//延迟1S

结束语

这种开发的方式不同于库函数和寄存器的开发方式,大大降低了用MDK-RAM创建工程的时间,感觉很方便,STM32CubeMx这个软件仅仅是帮助我们完成创建初始化工程的工作,如果编写任务程序,还是学要到MDK-RAM软件中进行程序编写。本菜鸡也是刚刚接触STM32CubeMx开发,如有纰漏和错误的地方还望大家不吝指出,也欢迎大家一起学习交流。

猜你喜欢

转载自blog.csdn.net/qq_42449286/article/details/105929494