I/O(PA0/PE11)设置成下拉输入,并复位该位,为什么电压表量出该管脚为高电平;而同样的程序在开发板上量出的电压为低电平?求高手指点

2019-07-21 01:23发布

void KEY_Init(void) //IO初始化

  GPIO_InitTypeDef GPIO_InitStructure;
//初始化KEY0-->GPIOA.13,KEY1-->GPIOA.15  上拉输入
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);//使能PORTA,PORTE时钟

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;//PE2~4
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
  GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化GPIOE2,3,4
   //GPIO_SetBits(GPIOE,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4); //用来控制PA.0没有按键按下时为低, 按键按下时输入高

//初始化 WK_UP-->GPIOA.0  下拉输入I/O
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0设置成输入,默认下拉  
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.0
GPIO_ResetBits(GPIOA,GPIO_Pin_0); //用来控制PA.0没有按键按下时为低, 按键按下时输入高 
//GPIO_SetBits(GPIOA,GPIO_Pin_0);

//初始化 KEY_PWR-->GPIOE.11  下拉输入
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PE11设置成输入,默认下拉  
GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化GPIOE.11
  GPIO_ResetBits(GPIOE,GPIO_Pin_11); //用来控制PE.11没有按键按下时为低, 按键按下时输入高 
// GPIO_SetBits(GPIOE,GPIO_Pin_11); //用来控制PE.11没有按键按下时为低, 按键按下时输入高

}

I/O(PA0/PE11)设置成下拉输入,并复位该位,为什么电压表量出该管脚位高电平;而同样的程序在开发板上量出的却为低电平?在自己的板子上断开该管脚与其它器件的连接,还是高电平,是不是买的芯片有问题?我用的芯片为STM32F103ZET6
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-07-21 03:30
外接了上拉电阻吧?
或者接了其他外设吧?
zz254057994
2楼-- · 2019-07-21 06:40
问题搞定,谢谢原子哥

一周热门 更多>