你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32 按键简易防抖法。

[复制链接]
damiaa 发布时间:2015-1-7 13:53
本帖最后由 damiaa 于 2015-1-7 13:59 编辑 / v4 i8 {2 ~+ n

6 w7 @4 f/ w  Q, |* s8 c1,开启定时中断,随便是哪个或SYTICK中断定时时间设置为5MS或多少。
$ o4 k' V& @. y* [# ]" Q5 X2,keyup为外部变量。指示按键按下或否。' h. Y- B9 g- E# S, w
3,定时中断中调用这个函数。
7 d4 u3 ?. n4 _void scankey(void)" ~8 t2 C3 y+ J6 k, w: `) ]. k
{' b8 G1 ]+ I* F0 D
   static uint16_t  keybuf=0;   keybuf<<=1;* |& Z% G; e/ Q) [4 l: K
  if(GPIO_ReadInputDataBit(KEYLINE0_GPIO_PORT, KEYLINE0_PIN)) keybuf+=1;
$ i9 I4 J4 p5 a7 \" l6 @; V& d" |" t* r( i$ `2 A
if(keybuf ==0xffff) keyup=1;//keyup 是外部变量指示button 是否按下。KEYLINE0_GPIO_PORT, KEYLINE0_PIN是一个IO口
* g; }7 v8 G0 r+ s if(keybuf ==0x0000) keyup=0;
1 K0 m, H( C; r: t6 P# o. x}& @# k! X. }1 j8 T

. _0 Q0 E4 @7 h# ~/ _3 F6 I喜欢的就点赞一下。+ I" v% f0 S' Y& }
赞 收藏 评论6 发布时间:2015-1-7 13:53

举报

6个回答
巅峰残狼 回答时间:2015-1-7 14:06:24
谢谢分享
麟狮蕟 回答时间:2015-1-8 16:57:14
我借鉴原子的按键!感觉不错!!
党国特派员 回答时间:2015-1-16 09:50:32
2.png
AndyYau-268557 回答时间:2015-1-17 19:45:18
论坛有篇关于按键的帖子,还是不错的,只用一个变量来完成 挺好的
AndyYau-268557 回答时间:2015-1-17 19:45:44
论坛有篇关于按键的帖子,还是不错的,只用一个变量来完成 挺好的
wyxy163@126.com 回答时间:2015-1-18 21:58:14
提示: 作者被禁止或删除 内容自动屏蔽
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版