光电开关控制出现问题,请各位大佬指点

2019-07-20 09:50发布

硬件及控制设计:用的单片机是STM32F407探索者,漫反射三线光电开关(V正、V负、Vout),现在将Vout连接在PF7上,通过检测PF7的状态来控制灯PF9的亮暗。
硬件状态:        光电开关外部单独供电(12v)满足要求。电路板状态也正常。
问题:              改变光电开关指示灯的亮暗,PF9灯亮暗一直不变。请各位大佬指点。下面附有程序。



#include "sys.h"
#include "delay.h"

#define  a  GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_7)
int aa;

void LED1_Init(void)
{             
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//ê1ÄüGPIOFê±Öó

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//ÆÕí¨êä3öÄ£ê½
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//éÏà-
  GPIO_Init(GPIOF, &GPIO_InitStructure);//3õê¼»ˉ
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//éÏà-
  GPIO_Init(GPIOF, &GPIO_InitStructure);//3õê¼»ˉ
       
        GPIO_ResetBits(GPIOF,GPIO_Pin_9 );//GPIOF9,F10éèÖøߣ¬μÆÃe
  GPIO_ResetBits(GPIOF,GPIO_Pin_7 );//
}
int main(void)
{
        LED1_Init();
        while(1)
        {
      aa=a;
                  switch(aa)
                        {
                        case 0:
                                 GPIO_ResetBits(GPIOF,GPIO_Pin_9);
            case 1:
                           GPIO_SetBits(GPIOF,GPIO_Pin_9);
                        }
}
}
       


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。