博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STM32CubeMX(01)基于HAL库点亮LED
阅读量:3963 次
发布时间:2019-05-24

本文共 1559 字,大约阅读时间需要 5 分钟。

文章目录

在这里插入图片描述


前言

前面已经介绍了安装了STM32CubeMX,并且安装了F1系列和F4系列的支持包,没有安装的同学可以点击前往:

今天我们就来分别点亮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所有的板子,可以说是非常的方便。今天完成了开发板的入门级程序,算是入门了。代码之路任重道远~,还需多多练习。
在这里插入图片描述

转载地址:http://zbezi.baihongyu.com/

你可能感兴趣的文章
Python之操作MySQL数据库
查看>>
watir学习之—如何遍历页面所有的超链接
查看>>
ruby之——安装gem提示:Please update your PATH to include build tools or download the DevKit
查看>>
Selenium-Webdriver系列教程(一)————快速开始
查看>>
Selenium-Webdriver系列教程(2)———浏览器的简单操作
查看>>
Selenium-webdriver系列教程(3)———如何执行一段js脚本
查看>>
Selenium-webdriver系列教程(4)——如何定位测试元素
查看>>
Selenium-webdriver系列教程(5)———如何定位frame中的元素
查看>>
Selenium-webdriver系列教程(6)———如何捕获弹出窗口
查看>>
Eclipse(Windowns XP)下搭建Android开发环境——简介
查看>>
Android自动化工具Monkeyrunner使用(一)
查看>>
Android自动化工具Monkeyrunner使用(二)
查看>>
Android自动化工具Monkeyrunner使用(三)
查看>>
Android自动化工具Monkeyrunner使用(四)
查看>>
Android自动化工具Monkeyrunner使用(五)
查看>>
Selenium-webdriver系列教程(7)———如何处理alert和confirm
查看>>
Selenium-webdriver系列教程(8)———使用Page Object设计模式
查看>>
Python logging模块详解
查看>>
加载selenium2Library失败---robotframework环境搭建(RIDE无法启动?)
查看>>
Robot Framework 的安装配置和简单的实例介绍
查看>>