当前位置:   article > 正文

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

hal_gpio_writepin

目录

一.硬件

二.配置引脚模式

 三.编写代码

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灯同时闪烁。

  1. while (1)
  2. {
  3. /* USER CODE END WHILE */
  4. /* USER CODE BEGIN 3 */
  5. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9|GPIO_PIN_10, RESET); //RESET设置低电平,灯亮
  6. HAL_Delay(250); //延时0.25秒 及led灯亮0.25
  7. HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9|GPIO_PIN_10, SET); //SET设置高电平,灯灭
  8. HAL_Delay(250);
  9. }
  10. /* USER CODE END 3 */

我们用到的两个函数

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

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

3.运行程序

点击编译(ctrl+B)

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

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

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

至此本节的配置已经完成

四.led灯闪烁

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/126106
推荐阅读
相关标签
  

闽ICP备14008679号