久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5042|回復: 1
打印 上一主題 下一主題
收起左側

STM8單片機按鍵 短按 雙擊 長按源代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:399458 發表于 2018-10-10 11:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STM8單片機上面實現代碼為:

//按鍵按下去會出現下降沿,設置按鍵IOGPIOB4所在的外部端口B下降沿觸發中斷
void exit_init(void)
{
   EXTI_DeInit();
   EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB,EXTI_SENSITIVITY_FALL_ONLY);
}

//按鍵按下中斷服務程序
INTERRUPT_HANDLER(EXTI_PORTB_IRQHandler, 4)
{
   if(GPIO_ReadInputPin(GPIOB,GPIO_PIN_4)==0)//是按鍵下降沿
    {
       key_fall_flag = 1;//生成按鍵按下標志
}
}

//周期1ms的定時器中斷服務程序
INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler,23)
{
         if(key_fall_flag==1)//發生按鍵按下事件
    {
       if(GPIO_ReadInputPin(GPIOB,GPIO_PIN_4)==0)//按鍵持續按下
       {
           if(key_holdon_ms <= 2000)
           {
                key_holdon_ms++;
           }
           else //按鍵按下到2000ms就判斷長按時間成立,生成長按標志
           {
                key_holdon_ms = 0;
                short_key_flag=0;//清短按鍵標志
                key_long_down = 1//長按鍵標志置位
key_fall_flag = 0;//清按鍵按下標志
           }
       }
       else //按鍵抬起
       {                        
           if(key_holdon_ms>50)//按下時間大于50ms,生成單擊標志
           {
                key_holdon_ms=0;
                short_key_flag=1;
                key_long_down =0;
                key_fall_flag=0;

//距離上次單擊時間在100~500ms之間,則認為發生連擊事件               
                                     if(keyupCnt>100&& keyupCnt<500)
                                     {
                                               doubleClick= TRUE;
                                               short_key_flag=0;   
                                     }

                                     keyUpFlag= TRUE;//單擊抬起按鍵后,生成按鍵抬起標志
           }                        
           else  //按鍵持續時間小于50ms,忽略
           {
                key_holdon_ms=0;
                short_key_flag=0;
                long_key_flag=0;
                key_fall_flag=0;
           }
       }

   }  


if(keyUpFlag)//單擊抬起后,啟動計數,計數到500ms
                 keyupCnt++;
         if(keyupCnt>500)

                 keyupCnt= 0;
                   keyUpFlag= FALSE;
         }
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:398041 發表于 2019-7-1 16:04 | 只看該作者
還是沒有應用起來
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91久久久久久久久 | 9191成人精品久久 | 久久久久国产精品免费免费搜索 | 九九亚洲 | 欧美网址在线观看 | 欧美在线观看一区 | www九色| 在线一区| 国产成人高清视频 | 亚洲另类春色偷拍在线观看 | 久久精品欧美一区二区三区不卡 | 久久99视频| 国产欧美一区二区精品久导航 | 亚洲一区视频在线 | 日本黄色短片 | 久久久久久一区 | 精品久久久久久一区二区 | 中文字幕久久久 | 中文在线一区二区 | 99久久精品免费看国产小宝寻花 | 日韩中文字幕视频在线 | 激情91 | 中文字幕在线视频免费观看 | 国产色网站 | www精品| 午夜精品一区二区三区三上悠亚 | 久操av在线| 天天拍天天色 | 国产成人区| 澳门永久av免费网站 | 日韩精品久久一区二区三区 | 久久久久久久久久久久91 | 欧美一区二区在线观看 | 亚洲毛片一区二区 | 日韩在线免费 | 久久88| 狠狠综合久久av一区二区小说 | 国产美女精品视频免费观看 | 在线观看黄色大片 | 91看片官网 | 色一情一乱一伦一区二区三区 |