搜索
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU

[开发工具] STM32CubeMX_03 | 使用GPIO点亮一个LED

[复制链接]
201|39
 楼主 | 2020-3-29 18:19 | 显示全部楼层 |阅读模式
本篇文章主要介绍如何使用STM32CubeMX初始化STM32L431RCT6的GPIO,并点亮一个LED。

使用特权

评论回复
 楼主 | 2020-3-29 18:19 | 显示全部楼层
1. 准备工作
硬件准备
开发板
首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):
151815e80763860d41.png

使用特权

评论回复
 楼主 | 2020-3-29 18:20 | 显示全部楼层
软件准备
需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码;

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

使用特权

评论回复
 楼主 | 2020-3-29 18:21 | 显示全部楼层
2.生成MDK工程
选择芯片型号
打开STM32CubeMX,打开MCU选择器:
872765e80769f5e782.png
搜索并选中芯片STM32L431RCT6:
74935e8076b10b8ea.png

使用特权

评论回复
 楼主 | 2020-3-29 18:22 | 显示全部楼层
配置时钟源
如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;
如果使用默认内部时钟(HSI),这一步可以略过;
这里我都使用外部时钟:
366935e8076d1af02e.png

使用特权

评论回复
 楼主 | 2020-3-29 18:23 | 显示全部楼层
配置GPIO引脚
查看小熊派开发板的原理图,如下:
676465e8076ecada18.png

所以接下来我们选择配置PC13引脚:
639935e8076fccef5e.png
给PC13引脚设置一个user_label:
66455e807711deb34.png

使用特权

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

使用特权

评论回复
 楼主 | 2020-3-29 18:24 | 显示全部楼层
配置时钟树
STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可:
428515e80774629243.png

使用特权

评论回复
 楼主 | 2020-3-29 18:24 | 显示全部楼层
生成工程设置
268255e807771a47f9.png

使用特权

评论回复
 楼主 | 2020-3-29 18:25 | 显示全部楼层
代码生成设置
最后设置生成独立的初始化文件:
972905e80779f713d1.png

使用特权

评论回复
 楼主 | 2020-3-29 18:26 | 显示全部楼层
生成代码
点击GENERATE CODE即可生成MDK-V5工程:
270175e8077ba31126.png

使用特权

评论回复
 楼主 | 2020-3-29 18:26 | 显示全部楼层
生成成功
416005e8077e16a545.png

使用特权

评论回复
 楼主 | 2020-3-29 18:27 | 显示全部楼层
3. 在MDK中编写、编译、下载用户代码
编写用户代码
STM32CubeMX生成的代码目录如下:
529815e80780950232.png

使用特权

评论回复
 楼主 | 2020-3-29 18:28 | 显示全部楼层
进入MDK-ARM目录,打开工程:
501155e80783a781b4.png

使用特权

评论回复
 楼主 | 2020-3-29 18:29 | 显示全部楼层
在main.c中的main函数中编写简单的用户代码:
  1.   while (1)
  2.   {
  3.     /* USER CODE END WHILE */
  4.     /* USER CODE BEGIN 3 */
  5.     HAL_Delay(200);
  6.     HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
  7.   }
复制代码

使用特权

评论回复
 楼主 | 2020-3-29 18:29 | 显示全部楼层
编译代码
编译整个工程:
611395e807890f0935.png

使用特权

评论回复
 楼主 | 2020-3-29 18:30 | 显示全部楼层
设置下载器
59645e8078b6d9ec9.png

409065e8078c76de3c.png

使用特权

评论回复
 楼主 | 2020-3-29 18:31 | 显示全部楼层
下载运行
600165e8078e659cbc.png

使用特权

评论回复
 楼主 | 2020-3-29 18:32 | 显示全部楼层
实验现象
796715e807922d18ed.png

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

使用特权

评论回复
| 2020-4-5 20:53 | 显示全部楼层
            

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表