OpenEdv-开源电子网

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

新人求助,自己写了个跟按键相关的程序,出现了一些问题

[复制链接]

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
发表于 2016-5-17 10:03:40 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 七十八 于 2016-5-17 11:17 编辑

用的mini板子是库函数stm32Rbt6,看到按键输入的时候就想能不能按住的时候灯亮,撒手的时候灯灭,然后写了个程序是读取io口。写的是key0或key1按下时led0亮,key wp按下时led1亮。但是逻辑写的是或(标黄那里),却是与的效果。就是俩键一起按下才亮,不知道是为什么,而如果逻辑写的是与逻辑则是或的效果。求大神指点,十分感谢。 int main(void)
{
        u8 k0;
        u8 k1;
        u8 k_wp;
         SystemInit();  //系统时钟设置
        delay_init(72);             //延时初始化
        NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
         LED_Init();        //初始化与LED连接的硬件接口
        KEY_Init();        //初始化与按键连接的硬件接口
                while(1)
        {
                k0=GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_13);//得到键值
                k1=GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15);
                k_wp=GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0);
                   if(k0==1||k1==1)
                {                                                   
                        LED0=1;
                }else LED0=0;
                if(k_wp==0)
                {
                        LED1=1;
                }else LED1=0;
        
        }         

}

key.jpg

最佳答案

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

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-5-17 10:03:41 | 显示全部楼层
七十八 发表于 2016-5-17 10:57
您好,我把key的原理图贴上来了。我这边别的都正常,就是写的是或但得俩键一起按才亮,如果写与的话则是 ...

把判断改成 ==0
我有故事,你有酒吗
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-5-17 10:45:10 | 显示全部楼层
你按键按下之后是什么状态?你这个写法是按下之后接高电平,没有mini的原理图,不知道你写的对不对
我有故事,你有酒吗
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-17 10:57:29 | 显示全部楼层
来俩不甜的 发表于 2016-5-17 10:45
你按键按下之后是什么状态?你这个写法是按下之后接高电平,没有mini的原理图,不知道你写的对不对

您好,我把key的原理图贴上来了。我这边别的都正常,就是写的是或但得俩键一起按才亮,如果写与的话则是俩键按一个才亮。
回复

使用道具 举报

10

主题

92

帖子

0

精华

高级会员

Rank: 4

积分
837
金钱
837
注册时间
2016-5-13
在线时间
182 小时
发表于 2016-5-17 11:02:52 | 显示全部楼层
K0和K1按键按下的时候是低电平的,而且LED是低电平的时候亮
K_wp按键按下的时候是高电平

把赋值改一下就好了,要留意电路图
相信自己,每一步都是在进步
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-17 11:14:48 | 显示全部楼层

解决了,谢谢,之前没考虑到led的低电平有效。程序写的有问题,十分感谢。
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-4-7
在线时间
11 小时
 楼主| 发表于 2016-5-17 11:15:11 | 显示全部楼层
Jower 发表于 2016-5-17 11:02
K0和K1按键按下的时候是低电平的,而且LED是低电平的时候亮
K_wp按键按下的时候是高电平

的确,之前没看到led的低电平有效,十分感谢您
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 03:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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