用到PA15碰到个奇怪的现象

2019-07-20 23:47发布

程序开始就关闭了JTAG,然后把PA15脚做输出的时候正常,做输入的时候读出的值不对,不知道什么原因?这个口只能用做输出吗?
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);    //开启AFIO时钟
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //关闭JTAG口,使PB3,PB4,PA15这几个IO作为普通IO使用


                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);


                GPIOStru.GPIO_Mode = GPIO_Mode_Out_PP;  //定义PA15为推挽输出。
                GPIOStru.GPIO_Speed = GPIO_Speed_50MHz;
                GPIOStru.GPIO_Pin = GPIO_Pin_15;

                GPIO_Init(GPIOA,&GPIOStru);
               
                GPIO_SetBits(GPIOA,GPIO_Pin_15);   //这里PA15控制一个LED,关闭LED都正常。
               
                GPIO_ResetBits(GPIOA,GPIO_Pin_15);
               
               
                GPIOStru.GPIO_Mode = GPIO_Mode_IPD;  //定义PA15为下拉输入。
                GPIOStru.GPIO_Speed = GPIO_Speed_50MHz;
                GPIOStru.GPIO_Pin = GPIO_Pin_15;

                GPIO_Init(GPIOA,&GPIOStru);               

                b = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15);


不管PA15接高电平还是低电平,读出的结果都是0x01.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。