野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17987|回复: 12

按键PC13好像跟PA0冲突

[复制链接]
发表于 2015-5-29 11:46:53 | 显示全部楼层 |阅读模式
今天有人问我 ,使用了PA0进行扫描,然后再加上PC13进行扫描,这个时候,PC13就没反应了  。如果注释掉PA0的话,PC13是可以正常工作的。我试了一下找不到原因。

主函数代码:
        while(1)
        {
               
                                if(KEY_Scan(GPIOC,GPIO_Pin_13)==KEY_ON)
                {
                                LED3_TOGGLE;
                }
               
               
                if(KEY_Scan(GPIOA,GPIO_Pin_0)==KEY_ON)
                {
                                LED2_TOGGLE;
                }
               

       
        }


key函数代码:
void KEY_GPIO_Config()
{
        GPIO_InitTypeDef GPIO_InitStruct;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);
       
        GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_0;
// GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOA,&GPIO_InitStruct);
       
        GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_13;
// GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOC,&GPIO_InitStruct);
}

uint8_t KEY_Scan(GPIO_TypeDef *  GPIOx,  uint16_t  GPIO_Pin )
{
        if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON)
        {
                delay_ms(100);
                if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON)
                {
                while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON);
                        return KEY_ON;
                }
                return KEY_OFF;
        }
        return KEY_OFF;
}

回复

使用道具 举报

发表于 2015-5-29 12:00:43 | 显示全部楼层
pa0和pc13一个高电平有效一个低电平有效,那个key_scanf函数有问题,你自己重写一个来判断就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-29 20:03:48 | 显示全部楼层
可是与原理图2个都是上拉的。
回复 支持 反对

使用道具 举报

发表于 2015-5-30 10:29:18 | 显示全部楼层
我的和你类似,同时扫面两个的话,只有PC13有用,注释掉PC13  PA0就可以用了。               
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-1 14:40:28 | 显示全部楼层
chuck__chee 发表于 2015-5-30 10:29
我的和你类似,同时扫面两个的话,只有PC13有用,注释掉PC13  PA0就可以用了。

你解决了吗?
回复 支持 反对

使用道具 举报

发表于 2015-6-1 23:49:20 | 显示全部楼层
昨天刚学,刚好学到按键,把key_scanf改下就行,,可我还是不明白为毛pa0和pc13一个高电平有效一个低电平有效。。。
QQ图片20150601234901.png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-4 11:30:53 | 显示全部楼层
恩  ,原理图错误的,PC13是下拉的  ~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-4 11:31:37 | 显示全部楼层
qq877655773 发表于 2015-5-29 20:03
可是与原理图2个都是上拉的。

原理图错的  ,PC13还下拉~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-4 11:32:18 | 显示全部楼层
chuck__chee 发表于 2015-5-30 10:29
我的和你类似,同时扫面两个的话,只有PC13有用,注释掉PC13  PA0就可以用了。

PC13是下拉的  ,垃圾原理图 ~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-4 11:32:48 | 显示全部楼层

原理图错了  ,PC13是下拉的  。不是上啦~
回复 支持 反对

使用道具 举报

发表于 2015-6-4 11:38:33 | 显示全部楼层
你的可能是旧版的原理图,在这些链接下载更新一下:
ISO-MINI-V2光盘资料链接
链接: http://pan.baidu.com/s/1kTGIRMB
密码: zfvc

ISO-V2光盘及模块资料链接:
链接: http://pan.baidu.com/s/1c0kw7Pu
密码: vaz8
回复 支持 反对

使用道具 举报

发表于 2015-6-4 13:04:16 | 显示全部楼层
qq877655773 发表于 2015-6-4 11:32
原理图错了  ,PC13是下拉的  。不是上啦~

非常感谢哦!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-4 14:06:44 | 显示全部楼层
flyleaf 发表于 2015-6-4 11:38
你的可能是旧版的原理图,在这些链接下载更新一下:
ISO-MINI-V2光盘资料链接
链接: http://pan.baidu.co ...

谢谢~~~哎,被坑到了呢~~
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-9 01:25 , Processed in 0.037441 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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