STM32·

STM32篇——点亮你的第一个 LED

ronger

ronger

4401 0

1.前期准备

安装好STM32CubeMX

安装好clion

2. 创建项目

  1. 启动STM32CubeMX,选择单片机型号

  1. 设置系统时钟,配置为外部晶振

  1. 使能下载调试接口 SWD,如下图,后续需要通过该接口下载程序至单片机

  1. 配置LED0,PB0LEDIO口,并取名为LED0,方便后续编程使用

  1. 配置LED1,将PB1配置为LED1,方法与步骤 4相同
  2. 生成项目工程代码

注:上图中,23分别为工程名字和存储地址,根据自己需要填写。4比较关键,使用Keil开发则选择MDK-ARM,如果使用clion,选择STM32CubeIDE。因下载最新的固件版本需要时间,故这里取消5,点击6生成工程代码。

3. 编辑代码

打开创建的工程,找到源文件夹Srcmain.c,并在while(1) 循环中添加2条点亮LED0LED1代码如下。main()函数中,其他代码均为系统生成的初始化代码,无需理会。

int main(void)
{
  HAL_Init();
  /* Configure the system clock */
  SystemClock_Config();
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  while (1)
  {
      /* USER CODE BEGIN WHILE */
      //添加代码,点亮LED0,LED1
      HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_RESET);
      HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET);
      /* USER CODE END WHILE */

  }
}

4. 编译下载

将程序下载至开发板,观察LED灯是否点亮。

5. 闪烁LED0灯

更新main函数代码如下:

int main(void)
{
    HAL_Init();
    /* Configure the system clock */
    SystemClock_Config();
    /* Initialize all configured peripherals */
    MX_GPIO_Init();
    while (1)
    {
        /* USER CODE BEGIN WHILE */
        //闪烁LED0
        HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);//切换亮、灭状态
        HAL_Delay(500);//延时500ms
        /* USER CODE END WHILE */
    }
}

如代码所示,在while(1)循环中,每隔500ms切换一次LED0亮或灭的状态,实现LED0闪烁功能。

6. 流水灯

每隔500ms依次点亮LED0LED1,实现流水灯效果,代码如下:

int main(void)
{
    HAL_Init();
    /* Configure the system clock */
    SystemClock_Config();
    /* Initialize all configured peripherals */
    MX_GPIO_Init();
    while (1)
    {
        /* USER CODE BEGIN WHILE */
        //流水灯
        HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);//切换亮、灭状态
        HAL_Delay(500);//延时500ms
        HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);//切换亮、灭状态
        HAL_Delay(500);//延时500ms
        /* USER CODE END WHILE */
    }
}

将程序编译并下载至开发板,观察LED工作情况。

7. 小结

本章学习了使用STM32CubeMx创建工程,并实现对LED小灯的操作。

所属系列

从当前文章继续阅读它所在合集中的前后内容。

关于我和 Hugh 学嵌入式开发这件事 —— STM32 篇 第 1 / 17 篇
查看合集

> 本作品集内教程基于 [Hugh](https://rymcu.com/user/hugh) 的创作基础上进行修订发布 关于我和 Hugh 学嵌入式开发这件事

当前已是该系列第一篇
下一篇
STM32篇——蜂鸣器

相关文章

优先推荐同专题、同标签和同作者内容,补足热门文章。

评论 0

登录 后参与评论

评论

成为第一个评论的人