|
我这样写
#define GPIO_0 GPIO_Pin_0
#define GPIO_1 GPIO_Pin_1
#define GPIO_2 GPIO_Pin_2
#define GPIO_3 GPIO_Pin_3
#define GPIO_4 GPIO_Pin_4
#define GPIO_5 GPIO_Pin_5
#define GPIO_6 GPIO_Pin_6
#define GPIO_7 GPIO_Pin_7
#define GPIO_8 GPIO_Pin_8
#define GPIO_9 GPIO_Pin_9
#define GPIO_10 GPIO_Pin_10
#define GPIO_11 GPIO_Pin_11
#define GPIO_12 GPIO_Pin_12
#define GPIO_13 GPIO_Pin_13
#define GPIO_14 GPIO_Pin_14
#define GPIO_15 GPIO_Pin_15
GPIO_TypeDef *OUTPORT[16]={
GPIOF,GPIOF,GPIOC,GPIOE,GPIOE,GPIOE,GPIOE,GPIOE,
GPIOF,GPIOF,GPIOF,GPIOF,GPIOF,GPIOF,GPIOF,GPIOE
};
uint16_t OUTPIN[16]=
{
GPIO_1,GPIO_0,GPIO_13,GPIO_6,GPIO_5,GPIO_4,GPIO_3,GPIO_2,
GPIO_4,GPIO_5,GPIO_6,GPIO_7,GPIO_8,GPIO_9,GPIO_10,GPIO_1
};
GPIO_TypeDef *INPORT[40]=
{
GPIOB,GPIOB,GPIOA,GPIOA,GPIOE,GPIOE,GPIOE,GPIOE,
GPIOE,GPIOE,GPIOE,GPIOE,GPIOE,GPIOG,GPIOG,GPIOF,
GPIOF,GPIOF,GPIOF,GPIOF,GPIOB,GPIOB,GPIOD,GPIOD,
GPIOG,GPIOG,GPIOG,GPIOG,GPIOG,GPIOG,GPIOG,GPIOA,
GPIOD,GPIOD,GPIOD,GPIOD,GPIOD,GPIOD,GPIOG,GPIOG
};
uint16_t INPIN[40]=
{
GPIO_6,GPIO_7,GPIO_0,GPIO_1,GPIO_15,GPIO_14,GPIO_13,GPIO_12,
GPIO_11,GPIO_10,GPIO_9,GPIO_8,GPIO_7,GPIO_1,GPIO_0,GPIO_15,
GPIO_14,GPIO_13,GPIO_12,GPIO_11,GPIO_1,GPIO_0,GPIO_10,GPIO_11,
GPIO_2,GPIO_3,GPIO_4,GPIO_5,GPIO_6,GPIO_7,GPIO_8,GPIO_8,
GPIO_0,GPIO_1,GPIO_2,GPIO_3,GPIO_4,GPIO_7,GPIO_10,GPIO_11
};
初始化
for( i=0; i<16; i++ )
{
GPIO_InitStructure.GPIO_Pin = OUTPIN[i];
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(OUTPORT[i], &GPIO_InitStructure);
GPIO_SetBits(OUTPORT[i],OUTPIN[i]);
}
for( i=0; i<40; i++ )
{
GPIO_InitStructure.GPIO_Pin = INPIN[i];
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(INPORT[i], &GPIO_InitStructure);
}
操作输出
void YOut( int num, int state )
{
if( state )
GPIO_ResetBits(OUTPORT[num],OUTPIN[num]);
else
GPIO_SetBits(OUTPORT[num],OUTPIN[num]);
}
读输入
int Xin( int num )
{
if( GPIO_ReadInputDataBit(INPORT[num],INPIN[num]) )
return 0;
else
return 1;
}
|
|