OpenEdv-开源电子网

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

按键输入问题GPIOE_3 GPIOE_7 GPIOE_11 GPIOE_15

[复制链接]

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-9-2
在线时间
0 小时
发表于 2014-9-9 19:12:57 | 显示全部楼层 |阅读模式
5金钱
文件 key.h

#ifndef __KEY_H
#define __KEY_H  
#include "sys.h"

#define KEY_0   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_0)//读取按键0
#define KEY_1   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_1)//读取按键1
#define KEY_2   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)//读取按键2 
#define KEY_3   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)//读取按键3
#define KEY_4   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)//读取按键4
#define KEY_5   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_5)//读取按键5
#define KEY_6   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_6)//读取按键6 
#define KEY_7   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_7)//读取按键7
#define KEY_8   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_8)//读取按键8
#define KEY_9   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_9)//读取按键9

#define KEY_UP   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_10)//读取按键上 
#define KEY_DOWN   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_11)//读取按键下
#define KEY_LEFT   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_12)//读取按键左
#define KEY_RIGHT   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_13)//读取按键右

#define KEY_CANCEL  GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_14)//读取按键撤销 
#define KEY_ENTER   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_15)//读取按键确认

void KEY_Init(void);//IO初始化
u8 KEY_Scan(u8);   //按键扫描函数    
#endif

文件key.c   
#include "stm32f10x.h"
#include "key.h"
#include "sys.h" 
#include "delay.h"
u8 key_num;  
   
//按键初始化函数
void KEY_Init(void) //IO初始化

  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//使能PORTA,PORTE时钟

GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_All ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
  GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化GPIOE
}

//按键处理函数
u8 KEY_Scan(u8 mode)
{  

if(KEY_0==0) key_num = 0;
if(KEY_1==0) key_num = 1;
if(KEY_2==0) key_num = 2;
if(KEY_3==0) key_num = 3;
if(KEY_4==0) key_num = 4;
if(KEY_5==0) key_num = 5;
if(KEY_6==0) key_num = 6;
if(KEY_7==0) key_num = 7;
if(KEY_8==0) key_num = 8;
if(KEY_9==0) key_num = 9;
if(KEY_UP==0) key_num = 10;
if(KEY_DOWN==0) key_num = 11;
if(KEY_LEFT==0) key_num = 12;
if(KEY_RIGHT==0) key_num = 13;
if(KEY_CANCEL==0) key_num = 14;
if(KEY_ENTER==0) key_num = 15;   
  return key_num ;
}




按 KEY_3, KEY_7,KEY_DOWN,KEY_ENTER  没反应 其他的正常  
 也就是
#define KEY_3   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)//读取按键3
#define KEY_7   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)//读取按键7
#define KEY_DOWN   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_11)//读取按键下
#define KEY_ENTER   GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_15)//读取按键确认
好像没读一样 其他按键正常


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-9 21:03:36 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-9-2
在线时间
0 小时
 楼主| 发表于 2014-9-9 21:17:26 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
换了GPIOD 也是一样的 都是 3 ,7, 11 ,15端口控制没反应
回复

使用道具 举报

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-9-2
在线时间
0 小时
 楼主| 发表于 2014-9-9 21:17:53 | 显示全部楼层
难道 我这个stm32芯片是假的
回复

使用道具 举报

9

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-9-2
在线时间
0 小时
 楼主| 发表于 2014-9-9 21:19:27 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
会不会 是JTAG下载有问题
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-9 22:18:37 | 显示全部楼层
回复【5楼】178017842:
---------------------------------
JTAG没用到这些IO。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-2 01:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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