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的主要内容,如果未能解决你的问题,请参考以下文章
STM32CubeMX-HAL库开发笔记-基于Proteus仿真
基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块