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

stm32 按键简易防抖法。

[复制链接]
damiaa 发布时间:2015-1-7 13:53
本帖最后由 damiaa 于 2015-1-7 13:59 编辑 0 o, u# s2 }8 l2 i$ w$ x( [+ D, b$ e

: F. t" s) j! ]: l1,开启定时中断,随便是哪个或SYTICK中断定时时间设置为5MS或多少。
3 N9 W2 |. o, W: j1 b( H* t2,keyup为外部变量。指示按键按下或否。
( w; H/ _* W) O1 O) j; x3,定时中断中调用这个函数。; H3 s. G# S( ?) \4 G5 }
void scankey(void)3 E" }2 p3 [/ A7 U' B/ C7 n
{2 r& l% Z% J  `6 `
   static uint16_t  keybuf=0;   keybuf<<=1;
- f  i0 j  Q/ p2 u$ Z1 Y  if(GPIO_ReadInputDataBit(KEYLINE0_GPIO_PORT, KEYLINE0_PIN)) keybuf+=1;
( a1 P0 ~* E9 V$ X) T2 G
, X; y) j5 y  g# G! v! z% y if(keybuf ==0xffff) keyup=1;//keyup 是外部变量指示button 是否按下。KEYLINE0_GPIO_PORT, KEYLINE0_PIN是一个IO口
7 C& u7 y6 Y1 v$ I1 N if(keybuf ==0x0000) keyup=0;! m. k+ c' H, W' d6 _1 V. }
}. R: N  `( l# R: a# q$ t/ E, i

5 T2 _% D. A% L( `+ P喜欢的就点赞一下。
7 z5 t+ O" Q  i6 L
收藏 评论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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版