用到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-22 07:28
ldskendy 发表于 2016-11-14 16:55
PA15外部是不是加了上拉电阻

没有加。
jijingang
2楼-- · 2019-07-22 10:02
 精彩回答 2  元偷偷看……
小陀螺爱炒蛋
3楼-- · 2019-07-22 11:20
我好像曾经遇到过这个问题,忘了怎么解决了,印象是关闭了某个时钟、、、、
tangjd12345
4楼-- · 2019-07-22 11:52
碰到了同样的问题

一周热门 更多>