物联网-GPIO输出—使用固件库点亮LED灯

2024-02-05 23:02:37 浏览数 (1)

1. 实验目的

让开发板的LED灯具有三个挡位,闪烁的速度不一样

2. 实验原理

本实验板连接了 3 个 LED 灯,这些 LED 灯的阴极都是连接到 STM32 的 GPIO 引脚, 只要我们控制 GPIO 引脚的电平输出状态,即可控制 LED 灯的亮灭。 若您使用的实验板 LED 灯的连接方式或引脚不一样,只需根据我们的工程修改引脚即可,程序的控制原理相同。

3. 主要仪器设备

GEC-STM32F429开发板和keil 5软件

4. 实验内容及步骤

要使用GPIO输出并使用固件库点亮LED灯,你可以按照以下步骤进行操作:

  1. 使能GPIO端口时钟:首先,你需要使能控制LED的GPIO端口的时钟。这可以通过调用相应的库函数来实现,以确保GPIO端口能够正常工作。
  2. 初始化GPIO目标引脚为推挽输出模式:接下来,你需要初始化控制LED的GPIO引脚为推挽输出模式。推挽输出模式是一种常用的输出模式,适用于控制LED等数字设备。你可以通过调用库函数来设置GPIO引脚的模式。
  3. 编写简单测试程序:编写一个简单的测试程序,用于控制GPIO引脚输出高电平或低电平,从而控制LED灯的亮灭。你可以通过循环或延时等方式来控制LED灯的闪烁效果。

1,首先用keil软件打开实验项目,确保可编译之后。

2,开发板使用usb连接线连接上电脑

3,然后使用点击load加载到开发板上。

4,修改代码,实现三档位闪烁速度,再次编译工程,加载到开发板观察效果。

修改的代码如下:

代码语言:c复制
/**
******************************************************************************
 * @file    main.c
 * @author  fire
 * @version V1.0
 * @date    2015-xx-xx
 * @brief   控制多彩流水灯
 ******************************************************************************
 */
#include "stm32f4xx.h"
#include "./led/bsp_led.h"
void Delay(__IO u32 nCount);
void speed(int time, int times);
int i;
/**
 * @brief  主函数
 * @param  无
 * @retval 无
 */
int main(void)
{
 /* LED 端口初始化 */
 LED_GPIO_Config();
 /* 控制LED灯 */
 while (1)
 {
  speed(0x200000,3);
  speed(0x500000,2);
  speed(0xFFF000,1);
 }
}
void Delay(__IO uint32_t nCount)  //简单的延时函数
{
 for(; nCount != 0; nCount--);
}
void speed(int time, int times){
 for(i =0;i<times;i  ){
  LED1( ON );    // 亮 
  Delay(time);
  LED1( OFF );   // 灭
  LED2( ON );   // 亮 
  Delay(time);
  LED2( OFF );   // 灭
  LED3( ON );    // 亮 
  Delay(time);
  LED3( OFF );   // 灭 
  }
}
/*********************************************END OF FILE**********************/

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

0 人点赞