STM32F103单片机控制1个光电开关时,可以采用下面的语句:
#define Key_1 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4)
if(Key_1==0)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_7);//继电器1闭合
GPIO_ResetBits(GPIOC,GPIO_Pin_6);//继电器2闭合
GPIO_SetBits(GPIOB,GPIO_Pin_15);//继电器3断开
GPIO_SetBits(GPIOB,GPIO_Pin_14);//继电器4断开
}
然而,当用STM32控制多个光电开关时,用多个if语句就不可以了,光电开关总是输出低电平,这是为什么?麻烦各位
朋友看一下,本人十分想弄明白。
if(Key_1==0)
{
GPIO_ResetBits(GPIOC,GPIO_Pin_7);//继电器1闭合
GPIO_ResetBits(GPIOC,GPIO_Pin_6);//继电器2闭合
GPIO_SetBits(GPIOB,GPIO_Pin_15);//继电器3断开
GPIO_SetBits(GPIOB,GPIO_Pin_14);//继电器4断开
GPIO_SetBits(GPIOB,GPIO_Pin_0);//灭灯
}
if(Key_2==0)
{
GPIO_SetBits(GPIOC,GPIO_Pin_7);//继电器1断开
GPIO_SetBits(GPIOC,GPIO_Pin_6);//继电器2断开
GPIO_ResetBits(GPIOB,GPIO_Pin_15);//继电器3闭合
GPIO_ResetBits(GPIOB,GPIO_Pin_14);//继电器4闭合
}
if(Key_3==0)
{
GPIO_SetBits(GPIOC,GPIO_Pin_7);//继电器1断开
GPIO_SetBits(GPIOC,GPIO_Pin_6);//继电器2断开
GPIO_ResetBits(GPIOB,GPIO_Pin_15);//继电器3闭合
GPIO_ResetBits(GPIOB,GPIO_Pin_14);//继电器4闭合
} |