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
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
或者接了其他外设吧?
一周热门 更多>