OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2057|回复: 4

关于按键电路的问题

[复制链接]

13

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2017-7-7
在线时间
42 小时
发表于 2017-11-8 09:06:21 | 显示全部楼层 |阅读模式
   if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2)==RESET)
        {
           delay_ms(100);
                if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2)==RESET)
                {
                       
                        GPIOA->ODR^=0X02;

                }
       
        }


用这个按键电路,按下去以后发现,电流立即加大了30Ma,吓得我不敢再按了,控制引脚是配置为推挽输出模式,然后灯也没反应,是什么问题?

QQ截图20171108090021.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

45

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4542
金钱
4542
注册时间
2013-12-27
在线时间
491 小时
发表于 2017-11-8 09:23:02 | 显示全部楼层
你这不是检测按键的么,按键是PB14,你检测A怎么会么会有反应,按键管脚配置为推挽输出?
回复 支持 反对

使用道具 举报

0

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-6-2
在线时间
192 小时
发表于 2017-11-8 09:27:15 | 显示全部楼层
你PB14是怎么配置的,不会也是推挽输出吧,应该配成上拉输入,另外你代码判断的是PA2,那是你的输出脚吧
回复 支持 反对

使用道具 举报

13

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2017-7-7
在线时间
42 小时
 楼主| 发表于 2017-11-8 10:33:33 | 显示全部楼层
沐唐 发表于 2017-11-8 09:23
你这不是检测按键的么,按键是PB14,你检测A怎么会么会有反应,按键管脚配置为推挽输出?

void KEY_GPIO_init(void)//初始化管脚
{
/*********定义一个GPIO_InitTypeDef 类型的结构体**********/
           GPIO_InitTypeDef GPIO_InitStructure;

     /*********选择要控制的GPIOx的引脚**********/
           //GPIO_InitStructure.GPIO_Pin =(GPIO_Pin_6|GPIO_Pin_7);
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
    /*********设置引脚速率为50MHZ**********/
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    /*********设置引脚模式为通用上拉输入**********/
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
       
    /*打开LED使用的GPIO的时钟使能*/
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

    /*初始化相应的GPIO*/
         GPIO_Init(GPIOA, &GPIO_InitStructure);         
}


    if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2)==Bit_RESET)
        {
           delay_ms(10);
                if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2)==Bit_RESET)
                {
                       
                         GPIO_SetBits(GPIOA,GPIO_Pin_1);

//                          }
                }
       
        }



这是相关代码,没有检测到低电平

已经改了,贴错了

已经改了,贴错了
回复 支持 反对

使用道具 举报

2

主题

45

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4542
金钱
4542
注册时间
2013-12-27
在线时间
491 小时
发表于 2017-11-8 11:46:47 | 显示全部楼层
genius 发表于 2017-11-8 10:33
void KEY_GPIO_init(void)//初始化管脚
{
/*********定义一个GPIO_InitTypeDef 类型的结构体********* ...

端口初始化要先开时钟
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-6 19:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表