stm32 设置开漏输出时 读取输入一直是高电平?

2019-07-20 03:00发布

要用到一个IO口 是以实现读和写的功能  对这个IO口 设置成开漏输入模式
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;



并外接10K电阻 上拉到3.3v   
在读这个IO口的时候  先对其输出置高  然后读取其输入一直是高电平   


        DIO_H;   //    #define DIO_H   GPIO_SetBits(GPIOF, GPIO_Pin_2)
         for(i=0;i<8;i++)
        {
          delay_us(5);
                temp>>=1;
                CLK_L;//CLK=0;
          delay_us(1);
                if(DIO_R)   //  #define DIO_R   GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_2)
                {
                        temp|=0x80;
                }       
                CLK_H;//CLK=1;
        }
        return temp;         ///读到的这个TEMP 值一直都是256   


请问这个问题出在了哪里?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。