【STM32Cube笔记】8-STM32CubeIDE点亮跑马灯

【STM32Cube笔记】系列文章目录

1-基于STM32的VSCode入门级教程前言
2-STM32Cube安装教程
3-STM32CubeIDE汉化
4-STM32Cube配置时钟设置
5-跑马灯引脚配置
6-Cortex-M7内核基本配置
7-新建用于储存代码的文件夹以及c/h文件
8-STM32CubeIDE点亮跑马灯
9-STLink调试
10-异步串口收发USART
11-中断控制器NVIC
12-配置外部中断
13-使用定时器产生PWM输出
14-使用定时器捕获上升/下降沿
15-数模转换AD/DA
16-STM32Cube个性化定制


点亮跑马灯

只要我们在STM32CubeIDE的设置中按照2.1.3来配置,更改io引脚更新时就不会覆盖掉我们新建的这几个文件以及文件夹。
这边以跑马灯为例,控制在IO口中已经定义好的两个引脚“IO_LED0”和”IO_LED1”。首先我们先修改“LED.h”中的代码使其调用main.h,并新建LED调用函数。
在这里插入图片描述

此时点击左上角的全部编译 按钮,此时应该顺利通过。
在这里插入图片描述

打开“gpio.c”查看gpio的初始化情况,可以看到程序设置过的引脚配置,产生了一段“IO_LED0_Pin”和“IO_LED1_Pin”的GPIO初始化代码。可以看到其中一行代码设置了两个IO电平的高低。
在这里插入图片描述

打开我们自己新建的“LED.c”文件,如法炮制的根据h文件的新建“LED_Run”函数。
并添加“HAL_GPIO_WritePin”函数。
在这里插入图片描述

查看“HAL_GPIO_WritePin”函数的定义,可以看到“SET”是1,“RESET”是0。
在这里插入图片描述

接着我们在“LED_Run”函数中配置好相应的电平位,并添加HAL库自带的延时函数“HAL_Delay();”。
开发板LED电路为串联接电源,因此高电平时LED关闭,低电平时LED开启。
添加完后的“LED_Run”程序代码如下图所示:
在这里插入图片描述

以下为程序源码:

#include "LED.h"
/** Configure pins
     PB0   ------> IO_LED0_Pin
     PB1   ------> IO_LED1_Pin
*/
void LED_Run(void)
{
  /*Configure LED pin Output  */
  HAL_GPIO_WritePin(GPIOB, IO_LED0_Pin, GPIO_PIN_SET);			//PB0设置为高电平
  HAL_GPIO_WritePin(GPIOB, IO_LED1_Pin, GPIO_PIN_RESET);		//PB1设置为低电平
  HAL_Delay(1000);											//延时1000ms
  HAL_GPIO_WritePin(GPIOB, IO_LED0_Pin, GPIO_PIN_RESET);		//PB0设置为低电平
  HAL_GPIO_WritePin(GPIOB, IO_LED1_Pin, GPIO_PIN_SET);	//PB1设置为高电平
  HAL_Delay(1000);
}

之后在“main.c”函数的“USER CODE Includes”注释中添加“LED.h”。
在这里插入图片描述

并在主循环函数中添加调用“LED_Init”函数即可编译 。
在这里插入图片描述
在这里插入图片描述

切记在Main.c函数中添加代码一定要在规范位置添加代码,否则会被覆盖。
5.10 编译和下载代码
编译有三种方式:
1.点击左上菜单栏的编译图标,
2.点开project点“全部编译”,
3.快捷键“Ctrl+B”。
在这里插入图片描述

5.11 生成HEX文件
STM32CubeIDE在编译后会自动生成烧录文件,默认生成的为bin二进制格式和elf二进制格式,这两种都可以用STM32CubeProgrammer烧录,但为了统一方便管理文件,这边还是推荐编译产生HEX格式文件。
右键点击工程文件打开属性,选择“C/C++Buil”->“Setting” ->“Tool Setting”
在这里插入图片描述

点击“MCU Post build outputs”,勾选“Convert toIntel Hex file”即可。
在这里插入图片描述

生成的文件可以在工程文件夹“Debug”下找到

在这里插入图片描述

版权声明:本文为CSDN博主「Amadues0_0」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Amadues0_0/article/details/122806136

【STM32Cube笔记】系列文章目录

1-基于STM32的VSCode入门级教程前言
2-STM32Cube安装教程
3-STM32CubeIDE汉化
4-STM32Cube配置时钟设置
5-跑马灯引脚配置
6-Cortex-M7内核基本配置
7-新建用于储存代码的文件夹以及c/h文件
8-STM32CubeIDE点亮跑马灯
9-STLink调试
10-异步串口收发USART
11-中断控制器NVIC
12-配置外部中断
13-使用定时器产生PWM输出
14-使用定时器捕获上升/下降沿
15-数模转换AD/DA
16-STM32Cube个性化定制


点亮跑马灯

只要我们在STM32CubeIDE的设置中按照2.1.3来配置,更改io引脚更新时就不会覆盖掉我们新建的这几个文件以及文件夹。
这边以跑马灯为例,控制在IO口中已经定义好的两个引脚“IO_LED0”和”IO_LED1”。首先我们先修改“LED.h”中的代码使其调用main.h,并新建LED调用函数。
在这里插入图片描述

此时点击左上角的全部编译 按钮,此时应该顺利通过。
在这里插入图片描述

打开“gpio.c”查看gpio的初始化情况,可以看到程序设置过的引脚配置,产生了一段“IO_LED0_Pin”和“IO_LED1_Pin”的GPIO初始化代码。可以看到其中一行代码设置了两个IO电平的高低。
在这里插入图片描述

打开我们自己新建的“LED.c”文件,如法炮制的根据h文件的新建“LED_Run”函数。
并添加“HAL_GPIO_WritePin”函数。
在这里插入图片描述

查看“HAL_GPIO_WritePin”函数的定义,可以看到“SET”是1,“RESET”是0。
在这里插入图片描述

接着我们在“LED_Run”函数中配置好相应的电平位,并添加HAL库自带的延时函数“HAL_Delay();”。
开发板LED电路为串联接电源,因此高电平时LED关闭,低电平时LED开启。
添加完后的“LED_Run”程序代码如下图所示:
在这里插入图片描述

以下为程序源码:

#include "LED.h"
/** Configure pins
     PB0   ------> IO_LED0_Pin
     PB1   ------> IO_LED1_Pin
*/
void LED_Run(void)
{
  /*Configure LED pin Output  */
  HAL_GPIO_WritePin(GPIOB, IO_LED0_Pin, GPIO_PIN_SET);			//PB0设置为高电平
  HAL_GPIO_WritePin(GPIOB, IO_LED1_Pin, GPIO_PIN_RESET);		//PB1设置为低电平
  HAL_Delay(1000);											//延时1000ms
  HAL_GPIO_WritePin(GPIOB, IO_LED0_Pin, GPIO_PIN_RESET);		//PB0设置为低电平
  HAL_GPIO_WritePin(GPIOB, IO_LED1_Pin, GPIO_PIN_SET);	//PB1设置为高电平
  HAL_Delay(1000);
}

之后在“main.c”函数的“USER CODE Includes”注释中添加“LED.h”。
在这里插入图片描述

并在主循环函数中添加调用“LED_Init”函数即可编译 。
在这里插入图片描述
在这里插入图片描述

切记在Main.c函数中添加代码一定要在规范位置添加代码,否则会被覆盖。
5.10 编译和下载代码
编译有三种方式:
1.点击左上菜单栏的编译图标,
2.点开project点“全部编译”,
3.快捷键“Ctrl+B”。
在这里插入图片描述

5.11 生成HEX文件
STM32CubeIDE在编译后会自动生成烧录文件,默认生成的为bin二进制格式和elf二进制格式,这两种都可以用STM32CubeProgrammer烧录,但为了统一方便管理文件,这边还是推荐编译产生HEX格式文件。
右键点击工程文件打开属性,选择“C/C++Buil”->“Setting” ->“Tool Setting”
在这里插入图片描述

点击“MCU Post build outputs”,勾选“Convert toIntel Hex file”即可。
在这里插入图片描述

生成的文件可以在工程文件夹“Debug”下找到

在这里插入图片描述

版权声明:本文为CSDN博主「Amadues0_0」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Amadues0_0/article/details/122806136

Amadues0_0

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

【STM32Cube笔记】12-配置外部中断

【STM32Cube笔记】系列文章目录 1-基于STM32的VSCode入门级教程前言 2-STM32Cube安装教程 3-STM32CubeIDE汉化 4-STM32Cube配置时钟设置 5-跑马灯引脚配置 6-Cortex-M7内核基本配

74HC138译码器的原理和使用

前言 译码器就是将每个输入的二进制代码译成对应的输出高低电平信号,和编码器互为逆过程。 百度百科 74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL&#xf