打印
[开发工具]

STM32CubeMX_03 | 使用GPIO点亮一个LED

[复制链接]
1526|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本篇**主要介绍如何使用STM32CubeMX初始化STM32L431RCT6的GPIO,并点亮一个LED。

使用特权

评论回复
沙发
downcount|  楼主 | 2020-3-29 18:19 | 只看该作者
1. 准备工作
硬件准备
开发板
首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):

使用特权

评论回复
板凳
downcount|  楼主 | 2020-3-29 18:20 | 只看该作者
软件准备
需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码;

Keil MDK和串口助手Serial Port Utility 的安装包都可以在文末关注公众号获取,回复关键字获取相应的安装包:

使用特权

评论回复
地板
downcount|  楼主 | 2020-3-29 18:21 | 只看该作者
2.生成MDK工程
选择芯片型号
打开STM32CubeMX,打开MCU选择器:

搜索并选中芯片STM32L431RCT6:

使用特权

评论回复
5
downcount|  楼主 | 2020-3-29 18:22 | 只看该作者
配置时钟源
如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;
如果使用默认内部时钟(HSI),这一步可以略过;
这里我都使用外部时钟:

使用特权

评论回复
6
downcount|  楼主 | 2020-3-29 18:23 | 只看该作者
配置GPIO引脚
查看小熊派开发板的原理图,如下:


所以接下来我们选择配置PC13引脚:

给PC13引脚设置一个user_label:

使用特权

评论回复
7
downcount|  楼主 | 2020-3-29 18:23 | 只看该作者
这里给PC13引脚添加一个user_label后,cubemx软件会在main.h文件中添加一个宏定义,如图,我们可以使用LED_GPIO_Port, LED_Pin来表示这个引脚,提高了程序的可移植性。如果没有该user_label,就需要使用GPIOC,GPIO_PIN_13 来表示这个引脚。

使用特权

评论回复
8
downcount|  楼主 | 2020-3-29 18:24 | 只看该作者
配置时钟树
STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可:

使用特权

评论回复
9
downcount|  楼主 | 2020-3-29 18:24 | 只看该作者
生成工程设置

使用特权

评论回复
10
downcount|  楼主 | 2020-3-29 18:25 | 只看该作者
代码生成设置
最后设置生成独立的初始化文件:

使用特权

评论回复
11
downcount|  楼主 | 2020-3-29 18:26 | 只看该作者
生成代码
点击GENERATE CODE即可生成MDK-V5工程:

使用特权

评论回复
12
downcount|  楼主 | 2020-3-29 18:26 | 只看该作者
生成成功

使用特权

评论回复
13
downcount|  楼主 | 2020-3-29 18:27 | 只看该作者
3. 在MDK中编写、编译、下载用户代码
编写用户代码
STM32CubeMX生成的代码目录如下:

使用特权

评论回复
14
downcount|  楼主 | 2020-3-29 18:28 | 只看该作者
进入MDK-ARM目录,打开工程:

使用特权

评论回复
15
downcount|  楼主 | 2020-3-29 18:29 | 只看该作者
在main.c中的main函数中编写简单的用户代码:
  while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
    HAL_Delay(200);
    HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
  }

使用特权

评论回复
16
downcount|  楼主 | 2020-3-29 18:29 | 只看该作者
编译代码
编译整个工程:

使用特权

评论回复
17
downcount|  楼主 | 2020-3-29 18:30 | 只看该作者
设置下载器


使用特权

评论回复
18
downcount|  楼主 | 2020-3-29 18:31 | 只看该作者
下载运行

使用特权

评论回复
19
downcount|  楼主 | 2020-3-29 18:32 | 只看该作者
实验现象


至此,我们已经学会了如何使用STM32CubeMX快速生成MDK的工程,点亮一个LED,接下来一节讲述如何使用 STM32CubeMX初始化GPIO进行按键检测。

使用特权

评论回复
20
10299823| | 2020-4-5 20:53 | 只看该作者
            

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

269

帖子

0

粉丝