打印

搞了很久,依然读取不了IO状态。关于GPIO_ReadInputDataBit的求助

[复制链接]
3560|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lxd056|  楼主 | 2016-7-20 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#define KEY1  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_11)
#define KEY2  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12)
#define KEY3 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)


void Key_Init(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_6;       
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;                 //IO口速度为50MHz
  GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //根据设定参数初始化
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13;       
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                  
  GPIO_Init(GPIOB, &GPIO_InitStructure);                                         //根据设定参数初始化
       
        GPIO_ResetBits(GPIOB,GPIO_Pin_4);
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
}

按键按下时低电平的。
debug的时候,按下GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_xx)读取的总是1。
(这个程序没写什么,空白程序,只是下面按键检测和main函数里面的检测循环无关紧要就不贴上来了,主要是debug读取不了这个IO状态,按键都按下了,GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_xx)这个还是为1)
而同样的程序初始化,在另外一个程序debug的时候却能正常读取0,究竟是哪里出问题了。
莫非是时钟?因为用的是内部晶振。但是另外一个程序也是内部晶振也行啊

相关帖子

沙发
123654789| | 2016-7-20 11:03 | 只看该作者
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   

你设置了退完输出, 有可能是这里有问题 ,我不能100%肯定。

你尝试一下OD

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;   

使用特权

评论回复
板凳
dirtwillfly| | 2016-7-20 14:08 | 只看该作者
stm32f103?

使用特权

评论回复
地板
lxd056|  楼主 | 2016-7-24 21:13 | 只看该作者
原来是锁存器没开~谢谢回复,分就给第一个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

32

帖子

0

粉丝