【STM32】 HAL库学习第一节 ——io输出 点亮LED灯

目录

一.硬件

二.配置引脚模式

 三.编写代码

1.概览

2.代码详解

3.运行程序


STM32cubeIDE是ST官方推出的一款用于开发STM32的工具,相比于之前使用的keil来说更加强大和方便。HAL库虽然在论坛上还褒贬不一,但无论是cubeide和HAL库在未来应该会成为主流。

和keil相比用cubeide意味着程序有更高的移植性,图形化也更加直观,所以我也希望能以最简单直观的方式实现功能。

一.硬件

正点原子的f4探索者开发板、st-link

看原理图可知两个led灯在io口设置低电平时发光、高电平时熄灭。而LED0、LED1分别对应引脚为PF9和PF10。

二.配置引脚模式

上节我们已经创建了一个名为test1的工程,可以看到如下界面。

这里直接找到我们要用到的引脚PF9、PF10,点击之后可以选择引脚功能,这里我们选择GPIO_Output输出模式。可以看到图中引脚颜色变为绿色。

在左侧找到system core中的GPIO可以看到列表中出现了PF9,可以对引脚进行详细配置。

将输出模式设置成推挽输出Output Push Pull

 列表最下面一栏可以自己更改标签,这里我们将PF9、PF10分别设置为LED0、LED1,可以看到右边引脚边上的注释也改变了。

图形界面配置好后点击保存(或者ctrl+s),会跳出两个弹窗,都点击确定。

 三.编写代码

1.概览

 可以看到cubeide已经自动创建好了main.c  main.h等基本文件。

 我们的代码就写在while循环内,要注意我们的代码一定要卸写在箭头所指的 /* USER CODE BEGIN  */下方,在其他地方写代码在保存后会自动清除。

2.代码详解

 while循环中写入以下代码,目的是使两个led灯同时闪烁。

 while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9|GPIO_PIN_10, RESET);  //RESET设置低电平,灯亮
		HAL_Delay(250);  //延时0.25秒 及led灯亮0.25秒
		HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9|GPIO_PIN_10, SET);  //SET设置高电平,灯灭
        HAL_Delay(250);
  }
  /* USER CODE END 3 */

我们用到的两个函数

HAL_GPIO_WritePin()用于给引脚写0或1,其中简单记忆RESET为0,SET为1。

HAL_Delay()为延时函数,单位毫秒。

3.运行程序

点击编译(ctrl+B)

在编译无错误后点击debug按钮

 自行设置调试器,我这里用的是st-link,选择swd模式。

我们可以直接运行,或者单步调试(在程序复杂的时候单调试找bug及其方便)。

至此本节的配置已经完成

四.led灯闪烁

 运行后可以看到两个小灯开始闪烁。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值