发新帖

[原创] 【STM32F723E-DISCO开发板试用体验】+点亮第一个LED(Cube库)

[复制链接]
发表于 2017-6-29 18:56:40
| 244 查看 | 0 回复
本帖最后由 SingleYork 于 2017-6-30 17:01 编辑

按照大家的惯例,逢板必点灯啊,所以笔者也不例外,来跟大家一起玩一玩高大上的板子点灯吧!

首先,肯定是需要先建立一个新的工程了,那么,前面已经介绍过如何建立一个新的工程了,在此就不再赘述了,这里就用之前的工程来点灯吧!那么点灯之前,我们还是来看一下开发板的硬件配置吧,首先得有灯可点,对吧。开发板上是有不少灯,但并不是所有的灯都能用程序来控制,所以,认真看下原理图还是有必要的。

笔者在原理图上找了个圈,终于找到了两个可以用来点的灯了,当然,也许还有其他的,就不一一去找了,先逮住这两个灯点了再说吧



从原理图上,我们可以很清楚的看到,板子上有1个红色的LED和一个绿色的LED可以用来点灯,他们分别接的是PA7和PB1口,那么笔者就先用其中一个--红色LED来点灯吧。


我们首先打开STM32CubeMX软件,将之前建立好的工程加载进来:




工程打开后,我们需要找到PA7脚,由于引脚太多,看得眼花缭乱,所以就直接来搜索一下吧:



果然,让计算去找比我们自己去找快多了啊。接下来,选择PA7,然后按鼠标左键,弹出列表中选中“GPIO_Output”,即:配置PA7的功能为GPIO口输出。



GPIO口的功能配置好后,我们可以看到这个GPIO口的颜色变成了绿色:



接下来,我们需要配置晶振,即:RCC配置,从原理图上我们可以看到,开发板上使用了一个25M的外部晶振:



那么很显然,我们可以用外部晶振,笔者以配置HSE--外部高速时钟为例。HSE--外部高速时钟包含三个配置,即:HSE--外部高速时钟、LSE--外部低速时钟、MCO--时钟输出。由于这里并没有使用到LSE和时钟输出,仅仅只是点灯用,所以笔者这里仅仅只是将HSE配置为外部晶振即可。



接下来,就是CLOCK配置(clock configuration),这里的配置是比较人性化的,结合时钟树,一看就明白(也可以根据参考手册时钟树配置),配置方法一样:



接下来就是“综合配置”(Configuration),因为我们这里只配置了P17引脚,其他功能(如:DMA、USB等)没有配置,如果前面配置的有,这里配置的信息就比较多,所以叫“综合配置”。

点击GPIO,弹出配置对话框,按步骤依次填写完信息,点击“OK”就好了:




再接着就是低功耗配置了,一般在学习阶段,低功耗配置比较少,在实际项目中配置低功耗需要考虑的东西就比较多,包括硬件。如下图所示,点击“Select”按键,便可以进行低功耗配置:



由于本例中并未涉及到低功耗的配置,仅仅为了演示如何配置低功耗,所以笔者新建一个自定义的低功耗配方,所有参数都默认为0了,然后选中该配方即可:





所有配置完毕,接下来我们就要开始生产代码了。如下图所示,点击“生产代码”工具:



代码自动生成完毕后,会提示打开软件工程(前提是你已经安装了MDK-ARM):



打开工程,编译没有错误,没有警告,下载,程序运行:



但是问题来了:为什么程序下载进去后,板子上的红色LED不亮呢?我们看下再仔细看下原理图和前面的配置:原来原理图上红色LED是需要高电平驱动的,而我们之前配置软件的时候,让他默认输出了低电平,这样一来肯定不亮了!那么有两种方法可以让LED亮起来:一是重新配置软件,让PA7口默认输出高电平;二是直接在MDK里面增加一句让PA7口输出高电平的代码。

笔者为了偷懒,不想再重新配置STM32CubeMX软件了,于是选择了直接在MDK里面修改代码!我们在打开MDK工程后可以看到,GPIO初始化的时候,是通过HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET);这段代码来让PA7口输出了低电平的,那么用过STM32的小伙伴们肯定就知道如果要让PA7口输出高电平该怎么改了:



没错,就是这么简单,直接将

  1. <font size="3" color="#800080">HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_RESET);</font>
复制代码

改成

  1. <font size="3" color="#800080">HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7, GPIO_PIN_SET);</font>
复制代码

即可!是不是SO EASY!


那么我们再来编译一下,然后下载,看下程序运行的结果吧:



很显然,程序下载成功了,再来看板子上的输出吧,按下复位按钮,没错,红色的LED亮起来了:



至此,整个点灯过程就完成了!那么点多个LED的配置方法就是一样了,笔者就不再赘述了!就给大家分享一下同时电亮两个LED的效果吧:












本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 7IC币 +7 收起 理由
LiuYang + 1
汉云 + 1
lygo + 1 淡定
马超飞燕 + 1 神马都是浮云
黄莨元 + 1
chen0000009 + 1
donatello + 1

查看全部评分

我要点赞 8

举报

您需要登录后才可以回帖 登录 | 立即注册