STM32F4 | 跑马灯实验


  在本章中,我们将通过代码控制 ALIENTEK 阿波罗 STM32 开发板上的两个 LEDDS0DS1 交替闪烁,实现类似跑马灯的效果。

一、 STM32F4 IO 口简介

  这部分内容可参考STM32F4 | GPIO工作原理和配置

二、硬件设计

  本章用到的硬件只有 LEDDS0DS1)。其电路在 ALIENTEK 阿波罗 STM32 开发板上默认是已经连接好了的。DS0PB1DS1PB0。所以在硬件上不需要动任何东西。其连接原理图如下:
在这里插入图片描述

三、软件设计

  我们直接复制前面创建好的工程模板——库函数版本,将复制过来的模板文件夹重新命名为“1-跑马灯实验”。在模板里面的 HALLIB 分组下面,我们引入了所有的 HAL 库源文件和对应的头文件,如下图所示:
在这里插入图片描述
实际上,这些大家可以根据工程需要添加。跑马灯实验我们一共使用到 HAL 库中 9 个源文件,其他不用的源文件大家可以直接在工程中删除。这样可以大大减少工程编译时间。
  在工程根目录文件夹下面新建一个 HARDWARE 的文件夹,用来存储与硬件相关的代码。然后在 HARDWARE 文件夹下新建一个 LED 文件夹,用来存放与 LED 相关的代码。
在这里插入图片描述
  接下来, 我们回到我们的工程,新建一个文件,然后保存在HARDWARE->LED 文件夹下面,保存为 led.c
在这里插入图片描述
  在led.c文件中输入以下代码:

#include "led.h"

/*
函数名称:LED_Init
函数作用:LED初始化配置
输		入:无
输		出:无
*/
void LED_Init(void)
{
   
	GPIO_InitTypeDef GPIO_Initure; //定义结构体变量,结构体成员为GPIO的相关模式和状态
	__HAL_RCC_GPIOB_CLK_ENABLE(); //开启 GPIOB 时钟
	
	//设置多个IO口,并且在同一个分组下,并且每个IO的配置都是一样的,就可以通过“|”来设置
	GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1; //指定IO口:PB1,0
	GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //模式设置:推挽输出;GPIO_MODE_OUTPUT_OD是开漏输出
	GPIO_Initure.Pull=GPIO_PULLUP; //上下拉设置:上拉
	GPIO_Initure.Speed=GPIO_SPEED_HIGH; //速度设置:高速
	
	
	HAL_GPIO_Init(GPIOB,&GPIO_Initure);
	
	//设置一组 IO 口中的一个或者多个 IO 口的电平状态
	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET); //PB0 置 1 ,默认灯灭
	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); 
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值