1. 实验目的
让开发板的LED灯具有三个挡位,闪烁的速度不一样
2. 实验原理
本实验板连接了 3 个 LED 灯,这些 LED 灯的阴极都是连接到 STM32 的 GPIO 引脚, 只要我们控制 GPIO 引脚的电平输出状态,即可控制 LED 灯的亮灭。 若您使用的实验板 LED 灯的连接方式或引脚不一样,只需根据我们的工程修改引脚即可,程序的控制原理相同。
3. 主要仪器设备
GEC-STM32F429开发板和keil 5软件
4. 实验内容及步骤
要使用GPIO输出并使用固件库点亮LED灯,你可以按照以下步骤进行操作:
- 使能GPIO端口时钟:首先,你需要使能控制LED的GPIO端口的时钟。这可以通过调用相应的库函数来实现,以确保GPIO端口能够正常工作。
- 初始化GPIO目标引脚为推挽输出模式:接下来,你需要初始化控制LED的GPIO引脚为推挽输出模式。推挽输出模式是一种常用的输出模式,适用于控制LED等数字设备。你可以通过调用库函数来设置GPIO引脚的模式。
- 编写简单测试程序:编写一个简单的测试程序,用于控制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腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!