定义结构体
typedef struct
{
GPIO_TypeDef *GPIOx;
u8 Pinx;
} relay_io;
初始化定义结构体数组
relay_io relay_map[10]=
{
{GPIOA,GPIO_Pin_1}, {GPIOA,GPIO_Pin_1}, {GPIOA,GPIO_Pin_1}, {GPIOA,GPIO_Pin_1}, {GPIOA,GPIO_Pin_1},
{GPIOA,GPIO_Pin_1}, {GPIOA,GPIO_Pin_1}, {GPIOA,GPIO_Pin_1}, {GPIOA,GPIO_Pin_1}, {GPIOA,GPIO_Pin_1}
};
调用结构体数组
void relay_set( u8 relay_ch,u8 sta )
{
if( (relay_ch>0)&&(relay_ch<11) )//1-10
{
relay_set_one( relay_ch,sta );
}
else if( 0xAA==relay_ch )
{
for( relay_ch=1;relay_ch<11;relay_ch++ )
{
relay_set_one( relay_ch,sta );
delay_ms(100);
}
relay_ch=0xAA;
}
}
void relay_set_one( u8 relay_ch,u8 sta )
{
if( sta )
{
GPIO_SetBits( relay_map[ relay_ch-1 ].GPIOx,relay_map[ relay_ch-1 ].Pinx );
}
else if( !sta )
{
GPIO_ResetBits( relay_map[ relay_ch-1 ].GPIOx,relay_map[ relay_ch-1 ].Pinx );
}
}