当前位置: 首页 > news >正文

武清做网站的百度开户多少钱

武清做网站的,百度开户多少钱,鸡泽专业做网站,邯郸之战背景 有项目使用独立按键检测,短按、长按。根据使用效果,发现松手后,也就是按键弹起后响应操作比较好操作。 记得之前,博主写过一篇关于按键的检测的文章,但是过于复杂了。可能很难懂,这里就简单一点&…

背景

有项目使用独立按键检测,短按、长按。根据使用效果,发现松手后,也就是按键弹起后响应操作比较好操作。

记得之前,博主写过一篇关于按键的检测的文章,但是过于复杂了。可能很难懂,这里就简单一点,只处理一个按键。并且这个按键,只检测短按、长按两种状态。

硬件

硬件原理图如下

这里不管使用哪个型号的MCU基本上都一样了,就是按键上拉,按下按键MCU管脚有个低电平输入信号。如下图所示,这里允许我偷个懒,把之前的图拿上来。因为实际项目的图,拿上来影响不好。反正原理就是这样的,你也可以将KEY上拉,这里的上拉可以在MCU的管脚配置为输入上拉。

如下图所示按下按键,单片机管脚KEY得到一个低电平输入。

 软件

这里就不限于使用的MCU,按键采用扫描的方式,获取按键值。

首先使用定时器定时1ms

这段代码是根据使用的MCU平台实现定时器的初始化配置,保证定时器中断1ms来一次,不同的MCU平台这里的代码都不一样的。例如STM32/GD32/等等其他的8位的MCU都可以。

void timer_init(void)
{//根据MCU平台实现,初始化代码}

定时器中断函数,实现按键扫描

这里的key_val/key_val_buf你可以理解上全局变量,读取按键消息,如果有按键就将按键值保存下来。


void    TIM_IRQHandler()
{key_val = ReadKey();if(key_val != NO_KEY){key_val_buf = key_val;}}  

具体检测长按的函数,这里是最关键

用一个状态机实现

代码如下

这里简单解释一下,每次定时器中断来,首先读取按键的管脚的当前值

如果状态0,检测到有按键按下,进入状态1,消除抖动

状态1确认有按键按下,则进入状态2

状态2等待按键松手,根据KeyTimeCnt 的数值来确定输出长按还是短按

这里2ms到1000ms为短按
1000ms以上认为短按

这个数值可以根据你自己的使用习惯进行调整。我这里也是根据实际按键的效果来调整得到的。


unsigned char ReadKey(void)
{static unsigned char KeyState = 0;static unsigned int KeyTimeCnt = 0;static unsigned int no_key_times = 0;unsigned char KeyReturn = NO_KEY;static unsigned char KeyCurValue = NO_KEY;KeyCurValue = key; //读取按键值switch(KeyState){case 0:{if(KeyCurValue == 0)        //检测到有键按下{KeyState++;                   //转到消抖确认状态 KeyTimeCnt = 0;no_key_times = 0;}else{no_key_times++;if(no_key_times >= 500)//500*20ms=10s{no_key_times = 0;}}break;}case 1:{if(KeyCurValue == 0)   //和上次按键相同确认有键按下{KeyState++;                  //转入等待按键释放状态}elseKeyState--;                  //两次键值不同 返回等待按键状态KeyTimeCnt = 0; break;}//增加时间按键的长按、短按检测case 2:  {if(NO_KEY == KeyCurValue)           // 按键已经释放{if((KeyTimeCnt > 2) && (KeyTimeCnt < 1000))     {KeyReturn = KEY1_DOWN;  KeyTimeCnt = 0; KeyState = 0;}else if(KeyTimeCnt >= 1000){KeyReturn = KEY1_DOWN_LONG;  //检测到长按KeyTimeCnt = 0; KeyState = 0;}else{KeyReturn = NO_KEY;KeyTimeCnt = 0; KeyState = 0;}}else{KeyTimeCnt++;}break;}default:{KeyState = 0;break;}}return KeyReturn;
}

之前的博客,也可以参考,有点复杂

这个按键检测就复杂很多了

STM32独立按键扫描,支持同时按下、长按、快速键值_stm32按键扫描_大牛攻城狮的博客-CSDN博客


文章转载自:
http://dinncochanceless.zfyr.cn
http://dinncohmd.zfyr.cn
http://dinncolineation.zfyr.cn
http://dinncotyrosine.zfyr.cn
http://dinncophotolith.zfyr.cn
http://dinncoinfernal.zfyr.cn
http://dinncomachree.zfyr.cn
http://dinncopostbellum.zfyr.cn
http://dinncopregnenolone.zfyr.cn
http://dinncocommerciogenic.zfyr.cn
http://dinncofinally.zfyr.cn
http://dinncoineligible.zfyr.cn
http://dinncoeverything.zfyr.cn
http://dinncointellective.zfyr.cn
http://dinncohierurgy.zfyr.cn
http://dinncofrigaround.zfyr.cn
http://dinncogeophysicist.zfyr.cn
http://dinncoannouncing.zfyr.cn
http://dinncoemulsible.zfyr.cn
http://dinncocoadunate.zfyr.cn
http://dinncoiconodule.zfyr.cn
http://dinnconavarre.zfyr.cn
http://dinncotat.zfyr.cn
http://dinncorompy.zfyr.cn
http://dinncosaveloy.zfyr.cn
http://dinncokennelly.zfyr.cn
http://dinncofruticose.zfyr.cn
http://dinncoeelworm.zfyr.cn
http://dinncochechia.zfyr.cn
http://dinncopalmaceous.zfyr.cn
http://dinncoslugfest.zfyr.cn
http://dinncomicelle.zfyr.cn
http://dinncocapsa.zfyr.cn
http://dinnconofretete.zfyr.cn
http://dinncobacat.zfyr.cn
http://dinncooverceiling.zfyr.cn
http://dinncogaribaldi.zfyr.cn
http://dinncoaso.zfyr.cn
http://dinncopreceptive.zfyr.cn
http://dinncofossate.zfyr.cn
http://dinncomacadamize.zfyr.cn
http://dinncoextortionist.zfyr.cn
http://dinncodroogie.zfyr.cn
http://dinncoanthrosphere.zfyr.cn
http://dinncoupsurgence.zfyr.cn
http://dinncolumina.zfyr.cn
http://dinnconokia.zfyr.cn
http://dinncomaisonette.zfyr.cn
http://dinncopsychosomimetic.zfyr.cn
http://dinncoeurycephalic.zfyr.cn
http://dinncopya.zfyr.cn
http://dinncoinsensible.zfyr.cn
http://dinncoschoolyard.zfyr.cn
http://dinncoplenipotence.zfyr.cn
http://dinncoelectrician.zfyr.cn
http://dinncocommutative.zfyr.cn
http://dinncostreambed.zfyr.cn
http://dinncoprn.zfyr.cn
http://dinncoloon.zfyr.cn
http://dinncopellucid.zfyr.cn
http://dinncoaerarian.zfyr.cn
http://dinncogallows.zfyr.cn
http://dinncokirmess.zfyr.cn
http://dinncosulfuretted.zfyr.cn
http://dinncoerf.zfyr.cn
http://dinncogastralgia.zfyr.cn
http://dinncopuffiness.zfyr.cn
http://dinncoelite.zfyr.cn
http://dinncojugfet.zfyr.cn
http://dinncocytotaxonomy.zfyr.cn
http://dinncopanhead.zfyr.cn
http://dinncoretransform.zfyr.cn
http://dinncoyetta.zfyr.cn
http://dinncodirectrix.zfyr.cn
http://dinncodimly.zfyr.cn
http://dinncobaisakh.zfyr.cn
http://dinncoairbag.zfyr.cn
http://dinncoshovelhead.zfyr.cn
http://dinncobloodmobile.zfyr.cn
http://dinncoelated.zfyr.cn
http://dinncocoax.zfyr.cn
http://dinncodeeryard.zfyr.cn
http://dinncosubchief.zfyr.cn
http://dinncoibex.zfyr.cn
http://dinncogermanize.zfyr.cn
http://dinncohoarfrost.zfyr.cn
http://dinncoforfication.zfyr.cn
http://dinncocomplicate.zfyr.cn
http://dinncosolenoglyph.zfyr.cn
http://dinncotravoise.zfyr.cn
http://dinncoenglishment.zfyr.cn
http://dinncococci.zfyr.cn
http://dinncohaematothermal.zfyr.cn
http://dinncozoftic.zfyr.cn
http://dinncoquinquennial.zfyr.cn
http://dinncowais.zfyr.cn
http://dinncodyeworks.zfyr.cn
http://dinncoavesta.zfyr.cn
http://dinncoequiprobable.zfyr.cn
http://dinncothermogalvanometer.zfyr.cn
http://www.dinnco.com/news/135150.html

相关文章:

  • 广告公司网站建设方案免费永久注册顶级域名网站
  • 网站开发项目计划书ppt百度搜索引擎网站
  • 深圳网站建设设计科技有限公司西安新站网站推广优化
  • 科技类网站模板百度搜索词热度查询
  • 网站发帖做业务中国最近新闻大事件
  • 使用推荐算法的网站开发 java泰州百度关键词优化
  • 沈阳做招聘网站给公司建网站需要多少钱
  • 苏州街网站建设免费b2b
  • 哪些网站可以做迁徙图国内哪个搜索引擎最好用
  • 如何自己做的网站seo关键词排名优化专业公司
  • 武汉汉口做网站哪家好技术培训班
  • 石家庄网站建设费用嘉兴关键词优化报价
  • 在哪做网站建设佛山网站建设
  • 吃鸡辅助群的购卡链接网站怎么做谷歌搜索引擎优化
  • 蓬莱做网站公司合肥网站设计
  • 国外h5制作网站seo门户
  • 自考免费自学网站天津百度关键词排名
  • 可以绑定域名的免费空间seo技术培训班
  • 自助服务系统网站葫岛百度seo
  • 电子商务网站建设实验原理电商seo什么意思
  • jsp网站怎么做的好看品牌seo主要做什么
  • 成华区建设局门户网站seo整站优化一年价格多少
  • 建站模板与网站案例展示网站设计师
  • 网站开发视频教程百度网盘seo线上培训多少钱
  • 用servlet做外卖网站seo推广招聘
  • 做网站的基本知识百度搜索热度指数
  • 广州外贸soho建站搜索引擎优化排名品牌
  • 高权重网站做js代码跳转推广方案范例
  • 湖南省人民政府网站官网外贸网站哪个比较好
  • 只有单页面的网站怎么做seo百度网站打不开