【STM32】STM32CubeMX学习笔记1:点亮LED灯(HAL库)

本文主要介绍用STM32点亮LED的实现过程。

采用的硬件部分为野火STM32F1ZET6开发板,软件部分为STM32CubeMX、MDK-ARM软件。

学习要点整理:

  1. 在MDK-ARM软件版本的选择中,本文使用版本为V5.32,如果是其他版本,选择V5即可;
  2. 在Debug模式的选择过程中,需要根据实际情况设定,如JTAG方式、Serial Wire(SWD方式)等;
  3. 程序下载后需要断电重启才会执行新程序,若要下载后直接执行,需要在在调试下载器的设置中勾选【Reset and Run】;
  4. 在MDK软件中写程序时,必须要将程序写在用户编写位置内,否则会在STM32CubeMX重新生成程序时删除编写的程序;
  5. 在MDK软件中写程序时中发现不能加中文注释,可通过【Configuration】-【Editor】中,将【Encoding】的选项修改为【Chinese GB2312 (Simplified)】即可。

1.新建LED项目

(1)打开STM32CubeMX软件后,点击【File】-【New Project】

在这里插入图片描述
(2)选中项目用采用的STM32F103ZET6芯片,点击【Start Projects】
在这里插入图片描述
(3)在【Project Manager】-【Project】中修改项目名称、更改项目存放路径、配置IDE版本
在这里插入图片描述
(4)在【Project Manager】-【Code Generator】中修改代码生成规则
在这里插入图片描述

2.工程配置

(1)进行时钟设置
在这里插入图片描述
(2)将调试程序方式设置为JTAG方式(根据开发板情况而定)
在这里插入图片描述
(3)修改时钟频率为72MHz
在这里插入图片描述

3.LED引脚配置

(1)LED原理图
在硬件电路中,LED灯为RGB三色灯,首先需要确定STM32开发板中LED灯所对应连接的引脚编号,原理图如下。
在这里插入图片描述
从原理图中可以看出,三色LED分别连接到STM32的PB5、PB0和PB1,分别控制红色(R)、绿色(G)和蓝色(B)三种颜色,并且是低电平有效。
(2)LED引脚配置
在STM32CubeMX软件中,将三个对应的引脚进行配置。在芯片引出线视图中找到PB5、PB0和PB1,点击并设置为【GPIO_Output】。
在这里插入图片描述
在GPIO配置中,将GPIO output level设置为【High】,Maximum output speed设置为【High】,User Label修改为【LED_G】,完成对PB0的配置,其他引脚参照该方式依次完成配置。
在这里插入图片描述
配置完成后,点击【GENERATE CODE】生成代码文件。
在这里插入图片描述

4.IDE软件设置

用MDK-ARM软件打开生成的工程文件,这里有几个地方需要设置一下。
(1)打开【Options for Target】
在这里插入图片描述
(2)点击【Target】,勾选【Use MicroLIB】,方便以后用printf函数进行调试使用。
在这里插入图片描述
(3)点击【Output】,勾选【Create HEX File】,编译的同时生成HEX文件,用于烧录程序。
在这里插入图片描述
(4)点击【Debug】,图示位置处进行修改调试器
在这里插入图片描述
(5)点击【Settings】,选择DAP型号,并将【Port】修改为JTAG(这里可以根据自己的调试器情况修改)
在这里插入图片描述
(6)点击【Flash Download】,勾选【Reset and Run】(这样程序烧录后会马上执行,不用断电重启)
在这里插入图片描述

5.LED灯点亮功能实现

在main.c文件中的while(1)语句中写入以下程序。

    HAL_GPIO_TogglePin(LED_R_GPIO_Port,LED_R_Pin);//翻转LED_R的电平
    HAL_Delay(500);//延时500ms,即0.5s
    HAL_GPIO_TogglePin(LED_R_GPIO_Port,LED_R_Pin);//翻转LED_R的电平
    HAL_Delay(500);//延时500ms,即0.5s
    HAL_GPIO_TogglePin(LED_G_GPIO_Port,LED_G_Pin);//翻转LED_G的电平
    HAL_Delay(500);//延时500ms,即0.5s
    HAL_GPIO_TogglePin(LED_G_GPIO_Port,LED_G_Pin);//翻转LED_G的电平
    HAL_Delay(500);//延时500ms,即0.5s
	HAL_GPIO_TogglePin(LED_B_GPIO_Port,LED_B_Pin);//翻转LED_B的电平
    HAL_Delay(500);//延时500ms,即0.5s
    HAL_GPIO_TogglePin(LED_B_GPIO_Port,LED_B_Pin);//翻转LED_B的电平
    HAL_Delay(500);//延时500ms,即0.5s

在写程序过程中发现一个问题,加注释的时候不能写入中文,可通过下图操作修改设置。
在这里插入图片描述
完成程序编译和烧录,最终效果如图。
在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NeilBlack419

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值