STM32CubeMX(01)基于HAL库点亮LED

Posted 学工科的皮皮志^_^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32CubeMX(01)基于HAL库点亮LED相关的知识,希望对你有一定的参考价值。

在这里插入图片描述


前言

前面已经介绍了安装了STM32CubeMX,并且安装了F1系列和F4系列的支持包,没有安装的同学可以点击前往:STM32CubeMX简介及下载安装
今天我们就来分别点亮F1和F4的LED灯。对LED相应的IO口进行操作。
软件环境:keil 5,STM32CubeMX V5.2.0
开发板:STM32F103ZET6和STM32F407ZGT6

一、新建工程

1、新建工程文件夹

我们在桌面新建一个工程文件夹,英文名。

在这里插入图片描述

2、新建工程

打开STM32CubeMX,点击第一个

在搜索栏搜索STM32F103ZET,双击第二个型号

在这里插入图片描述
然后在SYStem core 里面配置SYS 和RCC,SYS的Debug,选择串行总线 serial wire,RCC配置为外部晶振
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这时我们可以看到有一些引脚已经变绿了,变绿就说明,这些引脚被使用了,这就是图形化的好处。
在这里插入图片描述

3、配置LED的IO口

第三步也是最重要的一步,就是配置LED相应的管脚,那我哪里知道LED连在哪里,这时就要学会看原理图了,我们打开F1这个开发板的原路图,有LED0和LED1,这里我们点亮LED0,可以看到LED0一端是带上拉电阻接高电平的,这就意味着另一端只要输出低电平,就可以点亮这个LED。这就是硬件决定编程。
在这里插入图片描述
在这里插入图片描述
在STM32CubeMX我们配置PB5,搜索找到PB5,它会帮我们找到。
在这里插入图片描述
点击它设置为输出模式,因为我们要输出一个高电平或者一个低电平,来控制灯的亮灭。
在这里插入图片描述
点击GPIO_Output,变绿了就行

4、配置时钟树

时钟相当于开发板的心跳,心跳越快运行速度就越快,F103的主频是72M,采用外部晶振,所以我们按照规定来配置时钟。点击Clock Configuration。然后外设和定时器的时钟不一样。乘除一下就可以了。只要符合要求就可以。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5、工程参数配置

配置好时钟之后,我们点击project manager,工程管理

在这里插入图片描述
输入工程名字,和修改存放路径,选择basic,和MDK-ARM V5,
在这里插入图片描述

取消勾选默认,我们选我们自己下载好的包,最好用最新的包,有时候旧版本Cube不给你用,无语。
在这里插入图片描述
在这里插入图片描述
点击左边这一项,代码配置
在这里插入图片描述
我们这样配置。
在这里插入图片描述
然后回到主界面,点击图中右边的这个选项,点击GPIO,配置一下GPIO,改一下名字,然后模式我们选择推挽输出,推挽输出的意思是,既可以输出高电平,也可以输出低电平。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6、生成代码

配置完了之后我们就点击右上角,的生成代码。open project
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样我们发现代码已经生成了,是不是特别方便,动动手指头就把底层的驱动代码配置好了。

二、Keil 5编译配置及代码编写

1.编译配置

在这里插入图片描述

点击魔术棒进入配置C/C++选项我们选level 0,不进行代码优化,因为代码优化有时候会出问题,所以我们尽量不用。
在这里插入图片描述
点击Debug ,我用的是ST link,点击Setting,reset and run 一定要勾选上,不然烧进板子是没有现象的。
在这里插入图片描述

在这里插入图片描述

2、代码编写

代码编写很简单,在main.c文件里面,在while函数里面,就是延时300ms,翻转一次LED。我们前面配置了这么多,就是为了赋予开发板生命。让他可以执行程序,可以跑起来了!大家一定要把代码写在begin 和end 中间,否则重新生成代码的时候会被删除了的,所以一定要小心和作好备份。
在这里插入图片描述
我们可以看到这个函数的作用切换指定的GPIO引脚。
在这里插入图片描述

3、程序烧录

编译了没有问题,我们就可以烧进板子看实验现象了。
在这里插入图片描述
实验现象是没有问题的
在这里插入图片描述

总结

F1上是没问题的,F4也是一样的道理,他们引脚,时钟,外设资源,等等不一样,按照上述步骤,同样也是可以做出来了,
STM32CubeMX支持ST所有的板子,可以说是非常的方便。今天完成了开发板的入门级程序,算是入门了。代码之路任重道远~,还需多多练习。
在这里插入图片描述

以上是关于STM32CubeMX(01)基于HAL库点亮LED的主要内容,如果未能解决你的问题,请参考以下文章

(HAL库)实验1 点亮一个LED

STM32CubeMX基于HAL库实现简单串口通信

STM32CubeMX-HAL库开发笔记-基于Proteus仿真

基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块

基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块

基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块