STM32CubeMX配置GPIO点亮LED

1、新建工程
在这里插入图片描述
2、选择自己所使用的芯片:以stm32F405为例,在Part Number输入对应使用的芯片,然后再窗口MCUs/MPUs List中出现我们想要型号的芯片,双击打开即可。

在这里插入图片描述
双击进入:
在这里插入图片描述

3、配置时钟(RCC)
在这里插入图片描述
做好以上两个步骤后点击j进入Clock Configuratiion窗口
在这里插入图片描述
然后先进行上图中的第二步:选择HSE(即外部高速时钟,HSI 是高速内部时钟),外部时钟频率范围是 4MHz – 16MHz,我们这里选择8MHz。即第三步设置的8;最后如第四步,在system clock mux处选择HSE。

4、配置debug
操作如下图所示:
在这里插入图片描述
5、配置GPIO
因为我们此时的目的是点亮板子上的LED灯,所以我们先确定stm32f405RG芯片上对应LED的端口。
在这里插入图片描述
在原理图上可见,有四个LED端口,分别对应:PA2、PA8、PC13、PC14。本次我们使用PC13、PC14来进行实验,对PC13的端口置高电平,对PC14的端口置低电平来达到对比的目的。
在这里插入图片描述
首先在板子上找到对用端口,左键点击,然后选择GPIO_Output。将两个LED对应端口都设置为输出端口。设置好后在中间方框出现两个端口信息,点击展开,下方出现相应信息,红色方框中为端口电平状态,我们将其中之一设置为low(PC13),另一个设置为high(PC14)。
在这里插入图片描述
设置后:
在这里插入图片描述

6、工程设置
进入project Manager界面,在project窗口做以下操作:
(1)填写工程名
(2)选择保存位置
(3)选择编译器,我是用的是MDK
(4)选择固件库,如果√上use latest available version,可能会需要下载最新版本。可以自己选择。
在这里插入图片描述
进入code generator界面,做以下操作:
在这里插入图片描述
第二步生成设置为为每个外设生成对应的.c和.h文件,这会对简化我们的代码有所帮助。
最后点击generator code:
在这里插入图片描述
如果出现以下情况,不用担心,代码已经成功生成,只是因为某种原因不能直接打开MDK,我们可以进入到文件夹来打开工程。
在这里插入图片描述
进入刚才保存文件的位置:
在这里插入图片描述
在这里插入图片描述
双击打开LED.uvproix文件即可。如图:
在这里插入图片描述
生成gpio.c文件是因为我们刚刚选择了:
在这里插入图片描述
如果我们不勾选的话,gpio.c会并入到main.c中去,使得main.c更加冗杂,难以理解。

7、编译、烧录/下载到板子上
7.1编译
点击编译
编译结果:出现一个错误,错误的内容如长方框所示:LED\LED.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.意思是缺少启动文件。在这里插入图片描述
原因:stm32cube不会主动添加启动文件到工程中,我们需要手动添加。
解决办法:
(1)到文件所在位置找到启动文件
在这里插入图片描述
在keil5中右击Aplication/user/code,选择Add Existing Files…
在这里插入图片描述
然后来到之前的文件夹选择启动文件即可,如果找不到,可能是文件类型设置不正确,设置为All Files即可。在这里插入图片描述
添加完成后如下:
在这里插入图片描述
再次编译:已无错误。
在这里插入图片描述
7.2烧录/下载
连接好板子,点击在这里插入图片描述
进行烧录。
结果:
在这里插入图片描述
解决办法:
(1)点击魔法棒,进入相应窗口。
在这里插入图片描述
(2)点击Debug,然后根据自己使用的烧录工具选择ST-Link或者其他,然后点击setting。
在这里插入图片描述
(3)点击setting进来后是这样的:
在这里插入图片描述
我们将Port:JTAG改为SW,然后右上角显示出设备名等,说明连接成功。
在这里插入图片描述
再次烧录:
在这里插入图片描述
keil5显示烧录成功,但板子上无反应:
在这里插入图片描述
解决办法:点击魔法棒,然后点击debug,在点击setting,在改窗口点击Flash download,勾选reset and run。这样一下载板子就能立刻反应了。
在这里插入图片描述
再来看看烧录结果:成功!
在这里插入图片描述
PC13对应LED亮,PC14对应LED灭。再来看看原理图:
在这里插入图片描述
两个LED左端都已接高电平,如果右侧接高电平,那么二极管不导通,LED灯灭。反之则亮,与我们的结果相同。

猜你喜欢

转载自blog.csdn.net/qq_43516928/article/details/112801390