用到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.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
anazel
1楼-- · 2019-07-21 03:56
本帖最后由 anazel 于 2016-2-21 08:44 编辑

经过测试,关闭掉JTAG接口后空出来的PB3和PB4都能正常的读写,只有PA15写正常,读不正常,不知道什么原因,有高手能帮忙解释一下吗?。
FantaSy_
2楼-- · 2019-07-21 08:10
帮顶!!!
anazel
3楼-- · 2019-07-21 10:25
经测试,PA15在设置成下拉输入模式后本身就有2.67V的电压,不能用于做输入检测,做输出没有问题。
Riven丶叮当
4楼-- · 2019-07-21 12:42
 精彩回答 2  元偷偷看……
ba5rw
5楼-- · 2019-07-21 13:39
Riven丶叮当 发表于 2016-10-31 14:12
楼主你的这个问题解决了么?

发个提问帖就有人回答了。
Riven丶叮当
6楼-- · 2019-07-21 14:51
 精彩回答 2  元偷偷看……

一周热门 更多>