#ifdef _GPIOE
EXT GPIO_TypeDef *GPIOE;
#endif /*_GPIOE */
#define GPIO_Pin_12 ((u16)0x1000) /* Pin 12 selected */
struct PortDef
{
GPIO_TypeDef *port;//从定义的port中看出 GPIO_TypeDef 如上面定义所示
u16 pin;//从定义的PIN中看出 如上面定义所示
};
static const struct PortDef relay_chns[RELAY_CHN_NR] =
{
{RELAY1_CHK_PORT, RELAY1_CHK_PIN},
{RELAY2_CHK_PORT, RELAY2_CHK_PIN},
{RELAY3_CHK_PORT, RELAY3_CHK_PIN},
{RELAY4_CHK_PORT, RELAY4_CHK_PIN},
};
#ifdef RELAY_CHK
#define RELAY1_CHK_PORT GPIOE
#define RELAY1_CHK_PIN GPIO_Pin_12
#define RELAY2_CHK_PORT GPIOE
#define RELAY2_CHK_PIN GPIO_Pin_13
#define RELAY3_CHK_PORT GPIOE
#define RELAY3_CHK_PIN GPIO_Pin_14
#define RELAY4_CHK_PORT GPIOE
#define RELAY4_CHK_PIN GPIO_Pin_15
#define is_relay_on(PORT,PIN) GPIO_ReadInputDataBit(PORT,PIN)
#endif
is_relay_on(relay_chns[i].port, relay_chns[i].pin)
#ifdef RELAY_CHK
/* relay check pin */
GPIO_InitStructure.GPIO_Pin = RELAY1_CHK_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(RELAY1_CHK_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = RELAY2_CHK_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(RELAY2_CHK_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = RELAY3_CHK_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(RELAY3_CHK_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = RELAY4_CHK_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(RELAY4_CHK_PORT, &GPIO_InitStructure);
#endif