本文档免注册免费下载
文档分类:
STM32单片机大作业按键控制led多功能 C语言
×

#include"stm32f10x.h"

#include"key.h"

#include"Delay.h"

void KEY_Init(void)

{

GPIO_InitTypeDef GPIO_Initstruture;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPI0B,ENABLE);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;

GPIO_InitStructure.GPIOMode=GPIO_Mode_IPU;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIO,&GPIO_InitStructure);

}

u8 KEY_Scan(void)

{

static u8 key_up=1;

if(key_up&&(KEY1==0||KEY2==0||KEY3==0||KEY4==0))

{

Delay(20);

key_up=0;

if(KEY1==0)

{

return 1;

}

else if(KEY2==0)

{

return 2;

}

else if(KEY3==0)

{

return 3;

}

else if(KEY4==0)

{

return 4;

}

}

else if(KEY1==1&&KEY2==1&&KEY3==1&&KEY4==1)

key_up=1;

return 0;

}

#include "stm32f10x.h"

#include "led.h"

void LED_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;//构造结构体

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

GPIO_InitStructure.GPIO_Pin =

GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(LEDPORT, &GPIO_InitStructure);

GPIO_ResetBits(GPIOD,GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11);

}