OpenEdv-开源电子网

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

求助啊我这个为什么按键有时候行有时候不行啊!按键输入实验

[复制链接]

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
发表于 2016-4-14 16:59:48 | 显示全部楼层 |阅读模式
1金钱

QQ图片20160414165559.png
2CK7GZM{K5TP$]{}2%[`J~S.png

最佳答案

查看完整内容[请看2#楼]

另外,释放检测不能这么写,释放检测的话,也就是按住的时候不能return,那么必须while死循环,当按键松开,才跳出while,以此while后面加个;号,例如“while(KEY0 == 0) ;”
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-12-29
在线时间
70 小时
发表于 2016-4-14 16:59:49 | 显示全部楼层
本帖最后由 abc82465zz 于 2016-4-15 09:53 编辑
Ldd69stm32 发表于 2016-4-14 19:45
没有while也是一样的结果~我是听别人说什么释放检测然后我加上这个了~也不知道对不对~

另外,释放检测不能这么写,释放检测的话,也就是按住的时候不能return,那么必须while死循环,当按键松开,才跳出while,以此while后面加个;号,例如“while(KEY0 == 0) ;”
回复

使用道具 举报

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
 楼主| 发表于 2016-4-14 17:00:46 | 显示全部楼层
1111111111111
回复

使用道具 举报

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
 楼主| 发表于 2016-4-14 17:01:12 | 显示全部楼层
大神们速来啊!我这个是什么鬼啊!
回复

使用道具 举报

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
 楼主| 发表于 2016-4-14 17:02:01 | 显示全部楼层
为什么按键有时候行有时候不行啊(硬件没有问题)
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 17:09:13 | 显示全部楼层
你那个扫描函数  看着好蛋疼
回复

使用道具 举报

3

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2016-2-18
在线时间
50 小时
发表于 2016-4-14 17:30:27 | 显示全部楼层
gpioa的时钟没有使能,你只使能了gpioe的时钟
回复

使用道具 举报

3

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2016-2-18
在线时间
50 小时
发表于 2016-4-14 17:31:52 | 显示全部楼层
长的帅怪我落 发表于 2016-4-14 17:30
gpioa的时钟没有使能,你只使能了gpioe的时钟

好吧,我看错了。
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2016-4-14
在线时间
5 小时
发表于 2016-4-14 17:32:47 | 显示全部楼层
key_scan 里面的while()取消试试
回复

使用道具 举报

3

主题

58

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2016-2-18
在线时间
50 小时
发表于 2016-4-14 17:34:10 | 显示全部楼层
While循环里面,key=keyscan();你自己去看keyscan的定义,入口参数
回复

使用道具 举报

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
 楼主| 发表于 2016-4-14 18:50:41 | 显示全部楼层
长的帅怪我落 发表于 2016-4-14 17:34
While循环里面,key=keyscan();你自己去看keyscan的定义,入口参数

我没用他那个程序这个是不支持连按的~按键不好使。。。有时候行有时候不行
回复

使用道具 举报

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
 楼主| 发表于 2016-4-14 18:52:43 | 显示全部楼层
jermy_z 发表于 2016-4-14 17:09
你那个扫描函数  看着好蛋疼

新手嘛见谅~(*^__^*) 嘻嘻……就是想有自己的思路~
回复

使用道具 举报

7

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-12-29
在线时间
70 小时
发表于 2016-4-14 19:25:31 | 显示全部楼层
既然“有时行”了,那么基本上GPIO初始化没问题;
而“有时不行”,基本上就是按键检测的问题,scan里面有消抖10ms,main里面的那个if结构看着有点蛋疼,你可以试试规范写法,用{}括起来。另外那个scan里面的while是不是有点多余?
回复

使用道具 举报

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
 楼主| 发表于 2016-4-14 19:45:27 | 显示全部楼层
abc82465zz 发表于 2016-4-14 19:25
既然“有时行”了,那么基本上GPIO初始化没问题;
而“有时不行”,基本上就是按键检测的问题,scan里面有 ...

没有while也是一样的结果~我是听别人说什么释放检测然后我加上这个了~也不知道对不对~
回复

使用道具 举报

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
 楼主| 发表于 2016-4-14 19:46:16 | 显示全部楼层
Ldd69stm32 发表于 2016-4-14 19:45
没有while也是一样的结果~我是听别人说什么释放检测然后我加上这个了~也不知道对不对~

按键检测有没有跟51一样的释放检测啊?我的这个已经防抖了吧~
回复

使用道具 举报

7

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2015-12-29
在线时间
70 小时
发表于 2016-4-15 09:48:21 | 显示全部楼层
Ldd69stm32 发表于 2016-4-14 19:46
按键检测有没有跟51一样的释放检测啊?我的这个已经防抖了吧~

外面的if结构,把这个改了吧。最好用switch,你这个if写的乍看之下都不知道对还是错了。。。
回复

使用道具 举报

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
 楼主| 发表于 2016-4-15 11:06:01 | 显示全部楼层
abc82465zz 发表于 2016-4-15 09:48
外面的if结构,把这个改了吧。最好用switch,你这个if写的乍看之下都不知道对还是错了。。。

嗯好的!释放检测说的我明白了!牛b,f407现在有库函数手册吗?总是不知道那些外设用哪些库函数
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 22:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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