首页 > 其他分享 >STM32纯按键控制LED亮灭的代码

STM32纯按键控制LED亮灭的代码

时间:2022-12-12 23:35:43浏览次数:36  
标签:LED 亮灭 void STM32 KEY InitStruct GPIO include

led.c

#include "led.h"

void LED_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStruct);
}

void LED_Toggle(void)
{
	GPIOB->ODR ^= GPIO_Pin_0;
}

led.h

#ifndef __LED_H
#define __LED_H

#include "stm32f10x.h"

void LED_Config(void);
void LED_Toggle(void);

#endif

key.c

#include "key.h"
#include "led.h"

void KEY_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;
	GPIO_Init(GPIOA, &GPIO_InitStruct);
}

uint8_t KEY_Scan(void)
{
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0))
	{
		while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0));
		return 1;
	}
	else return 0;
}

key.h

#ifndef __KEY_H
#define __KEY_H

#include "stm32f10x.h"

void KEY_Config(void);
uint8_t KEY_Scan(void);

#endif

main.c

#include "stm32f10x.h"
#include "led.h"
#include "key.h"

int main(void)
{
	LED_Config();
	KEY_Config();
	while(1)
	{
		if(KEY_Scan()) LED_Toggle();
	}
}

标签:LED,亮灭,void,STM32,KEY,InitStruct,GPIO,include
From: https://www.cnblogs.com/Sound-Sleep/p/16977440.html

相关文章