初级会员

- 积分
- 88
- 金钱
- 88
- 注册时间
- 2016-8-19
- 在线时间
- 13 小时
|
发表于 2016-8-21 17:45:21
|
显示全部楼层
用库函数写的,希望对你有启发
#include "pbdata.h"
#include "Key_scanf.h"
#define Hang_00_L GPIO_ResetBits(GPIOE,GPIO_Pin_15)
#define Hang_00_H GPIO_SetBits(GPIOE,GPIO_Pin_15)
#define Hang_01_L GPIO_ResetBits(GPIOB,GPIO_Pin_11)
#define Hang_01_H GPIO_SetBits(GPIOB,GPIO_Pin_11)
#define Hang_02_L GPIO_ResetBits(GPIOB,GPIO_Pin_13)
#define Hang_02_H GPIO_SetBits(GPIOB,GPIO_Pin_13)
#define Hang_03_L GPIO_ResetBits(GPIOB,GPIO_Pin_15)
#define Hang_03_H GPIO_SetBits(GPIOB,GPIO_Pin_15)
#define Lie_00_V GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_9)
#define Lie_01_V GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_11)
#define Lie_02_V GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_13)
#define Lie_03_V GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_15)
#define jpys 20
void KEY_Scanf(void)
{
//μúò»DD
Hang_00_L;
Hang_01_H;
Hang_02_H;
Hang_03_H;
if(Lie_00_V==0)
{
delay_ms(jpys);
if(Lie_00_V==0)
{
printf("0\r\n");
}
}
if(Lie_01_V==0)
{
delay_ms(jpys);
if(Lie_01_V==0)
{
printf("1\r\n");
}
}
if(Lie_02_V==0)
{
delay_ms(jpys);
if(Lie_02_V==0)
{
printf("2\r\n");
}
}
if(Lie_03_V==0)
{
delay_ms(jpys);
if(Lie_03_V==0)
{
printf("3\r\n");
}
}
//μú¶tDD
Hang_00_H;
Hang_01_L;
Hang_02_H;
Hang_03_H;
if(Lie_00_V==0)
{
delay_ms(jpys);
if(Lie_00_V==0)
{
printf("4\r\n");
}
}
if(Lie_01_V==0)
{
delay_ms(jpys);
if(Lie_01_V==0)
{
printf("5\r\n");
}
}
if(Lie_02_V==0)
{
delay_ms(jpys);
if(Lie_02_V==0)
{
printf("6\r\n");
}
}
if(Lie_03_V==0)
{
delay_ms(jpys);
if(Lie_03_V==0)
{
printf("7\r\n");
}
}
//μúèyDD
Hang_00_H;
Hang_01_H;
Hang_02_L;
Hang_03_H;
if(Lie_00_V==0)
{
delay_ms(jpys);
if(Lie_00_V==0)
{
printf("8\r\n");
}
}
if(Lie_01_V==0)
{
delay_ms(jpys);
if(Lie_01_V==0)
{
printf("9\r\n");
}
}
if(Lie_02_V==0)
{
delay_ms(jpys);
if(Lie_02_V==0)
{
printf("A\r\n");
}
}
if(Lie_03_V==0)
{
delay_ms(jpys);
if(Lie_03_V==0)
{
printf("B\r\n");
}
}
//μúËÄDD
Hang_00_H;
Hang_01_H;
Hang_02_H;
Hang_03_L;
if(Lie_00_V==0)
{
delay_ms(jpys);
if(Lie_00_V==0)
{
printf("C\r\n");
}
}
if(Lie_01_V==0)
{
delay_ms(jpys);
if(Lie_01_V==0)
{
printf("D\r\n");
}
}
if(Lie_02_V==0)
{
delay_ms(jpys);
if(Lie_02_V==0)
{
printf("E\r\n");
}
}
if(Lie_03_V==0)
{
delay_ms(jpys);
if(Lie_03_V==0)
{
printf("F\r\n");
}
}
}
void KEY_GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
//¼üÅì DD
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11|GPIO_Pin_13|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;
GPIO_Init(GPIOE,&GPIO_InitStructure);
//áD
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9|GPIO_Pin_11|GPIO_Pin_13|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
GPIO_Init(GPIOD,&GPIO_InitStructure);
}
|
|