OpenEdv-开源电子网

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

很简单的按键输入实验,怎么都实现不了,拜托各位大佬路过帮小弟一下!

[复制链接]

2

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-7-27
在线时间
3 小时
发表于 2018-7-27 11:16:08 | 显示全部楼层 |阅读模式
1金钱
#include"key.h"
#include"sys.h"
#include"stm32f10x.h"
#include"delay.h"
#include"led.h"
#include"beep.h"

void Key_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOA,ENABLE);
       
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4;

        GPIO_Init(GPIOE,&GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;

        GPIO_Init(GPIOA,&GPIO_InitStructure);
}

void Key_Scan(void)
{
        int GPIOE_Key0,GPIOE_Key1,GPIOA_WK_UP,GPIOE_TEMP;
       
        GPIOE_TEMP=GPIO_ReadInputData(GPIOE);
        GPIOE_Key1=GPIOE_TEMP&00001000;
        GPIOE_Key0=GPIOE_TEMP&00010000;
        GPIOA_WK_UP=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);
       
        if(GPIOE_Key1==0)
        {LED1=!LED1;
               
               
        }
       
               
        if(GPIOE_Key0==0)
        {LED0=!LED0;
               
        }       
                       
        if(GPIOA_WK_UP==1)
        {//BEEP=!BEEP;
               
        }
       
}


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

使用道具 举报

2

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-7-27
在线时间
3 小时
 楼主| 发表于 2018-7-27 11:17:39 | 显示全部楼层
原子哥的程序里是用返回值在main函数里进行处理的,我想直接在scan里面处理,但是烧录进去不能成功
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-7-27
在线时间
3 小时
 楼主| 发表于 2018-7-27 11:28:24 | 显示全部楼层
青芒ARM 发表于 2018-7-27 11:17
原子哥的程序里是用返回值在main函数里进行处理的,我想直接在scan里面处理,但是烧录进去不能成功

还有原来使用是位带操作,现在直接用库函数去读取
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-7-27
在线时间
3 小时
 楼主| 发表于 2018-7-27 11:48:12 | 显示全部楼层
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-7-27 13:38:23 | 显示全部楼层
多调试
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-7-27 13:38:47 | 显示全部楼层
先试试灯能不能亮,排除灯不能亮的情况
猪猪熊呢?
回复

使用道具 举报

62

主题

903

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3566
金钱
3566
注册时间
2016-1-8
在线时间
544 小时
发表于 2018-7-27 13:57:05 | 显示全部楼层
有没有写到while1中呢
回复

使用道具 举报

7

主题

70

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
444
金钱
444
注册时间
2015-3-25
在线时间
129 小时
发表于 2018-7-27 14:31:23 | 显示全部楼层
GPIOE_Key1=GPIOE_TEMP&00001000;
        GPIOE_Key0=GPIOE_TEMP&00010000;

这两句不对啊   应该

GPIOE_Key1=GPIOE_TEMP&0x00001000;
        GPIOE_Key0=GPIOE_TEMP&0x00010000;
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 22:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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