用到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条回答
dreamARM
1楼-- · 2019-07-21 18:12
帮顶,同样关注,麻烦楼主如果解决了,也在第一楼编辑修改一下内容,告诉我们一声,谢谢了
Riven丶叮当
2楼-- · 2019-07-21 18:14
dreamARM 发表于 2016-10-31 14:46
帮顶,同样关注,麻烦楼主如果解决了,也在第一楼编辑修改一下内容,告诉我们一声,谢谢了

找到原因互相讲一下哈、、
ba5rw
3楼-- · 2019-07-21 18:15
 精彩回答 2  元偷偷看……
Riven丶叮当
4楼-- · 2019-07-21 23:19
ba5rw 发表于 2016-11-1 09:54
你具体遇到是什么问题和什么情况汇总发个提问帖,解决后有利于后来者日后搜索。

嗯、好的、
anazel
5楼-- · 2019-07-21 23:47
Riven丶叮当 发表于 2016-10-31 14:12
楼主你的这个问题解决了么?

经测试,PA15在设置成下拉输入模式后本身就有2.67V的电压,不能用于做输入检测,做输出没有问题。
ldskendy
6楼-- · 2019-07-22 04:01
 精彩回答 2  元偷偷看……

一周热门 更多>