key.h
#ifndef __KEY_H__
#define __KEY_H__
#include "stm32f10x.h"
#ifdef KEY_GLOBALS
#define KEY_EXT
#else
#define KEY_EXT extern
#endif
//IO定義
#define down() GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) //PA1
KEY_EXT void key_down(void);
#endif
key.c
/****************************************Copyright (c)**************************************************
**
** https://blog.csdn.net/weixin_40779546/article/details/81776171
**
**--------------文件信息--------------------------------------------------------------------------------
**文件名 : key.c
**描 述 : 按鍵狀態機
**
********************************************************************************************************/
#define KEY_GLOBALS
#include
#include "key.h"
enum KEY_STATE{KEY_IDLE=10,FILTER,PRESS,RELEASE};
unsigned char key_state = KEY_IDLE;
unsigned char key_state_tick = 0;
void key_down(void)
{
switch(key_state) {
case KEY_IDLE:
if(0 == down()){//有按鍵
key_state = FILTER;
key_state_tick = 0;
}
break;
case FILTER:
if(0 == down()) {//判斷是否為按鍵
key_state_tick ++;
if(key_state_tick > 3){//按鍵時間大于50ms。
//按鍵按下后的任務處理
key_state = PRESS;
key_state_tick = 0;//記錄處理鍵盤時刻,假設這是第一次。
}
} else {//按鍵的去抖動
key_state = KEY_IDLE;
key_state_tick = 0;
}
break;
case PRESS:
if(0 != down()){ //key release 松手
key_state = KEY_IDLE;
}
break;
default:
key_state = FILTER;
break;
}//end swtich;
}
上一篇:stm32f1xx串口控制燈開關實驗
下一篇:STM32使用不同的晶振需修改的代碼
推薦閱讀
史海拾趣
AirBorn公司成立于1958年,總部位于得克薩斯州奧斯汀。在創立之初,AirBorn就致力于設計、制造和銷售高性能連接器和電纜組件。隨著電子技術的飛速發展,AirBorn敏銳地捕捉到航空航天領域對高性能連接器的需求,并開始了針對這一領域的定制化產品研發。憑借卓越的技術實力和創新能力,AirBorn很快在航空航天連接器市場占據了一席之地。
在成功建立DRAM產品線后,晶豪科技又進一步進軍閃存市場。公司成功完成了多種容量及接口類型的NOR Flash及NAND Flash的開發,滿足了各種特定應用系統的需求。特別是NOR Flash產品,以其更快的速度、更高的安全性、低功耗高存儲密度和不斷降低的成本等優質特性,在市場上取得了顯著成果。
晶豪科技一直將研發作為公司的核心競爭力。公司成功建立了各種容量及接口規格的特定型DRAM產品線,包括SDRAM、DDR I/II/III及PSRAM、低耗電的Mobile DRAM等。這些產品廣泛應用于各種電子設備和系統,贏得了市場的廣泛認可。此外,公司還針對系統級封裝(SiP)的需求,成功開發了所需的“良品晶粒”(Known-Good-Die, KGD)產品及多芯片模塊封裝(MCP)的解決方案,滿足了客戶的多樣化需求。
2022年,川土微電子的CA-IS3062W產品榮獲了中國IC設計成就獎之“年度最佳隔離器”。這一榮譽的獲得不僅是對川土微電子技術實力的肯定,也進一步提升了公司在行業內的知名度。同時,這也為川土微電子未來的發展奠定了堅實的基礎。
1997年,ELESTA繼電器有限公司正式成立,專注于制造符合IEC 61810-3標準的強制導向觸點繼電器。這一戰略舉措進一步鞏固了ELESTA在電子繼電器領域的領先地位,并為公司的長期發展奠定了堅實的基礎。
本帖最后由 jameswangsynnex 于 2015-3-3 20:01 編輯 Broadcom公司單片數字電視解決方案BCM3560 Broadcom公司的單片高集成度電視解決方案BCM3560,使消費類電子產品制造商能開發出支持模擬,高清(HD)和標準清晰(SD)以及數字有線電視產品,具有出 ...… 查看全部問答∨ |
|
定制OS的時候把阿塞拜疆(拉丁)添加進去了, 然后在UI程序中有些特殊字符總是顯示不出來. 開發工具為VS2005 代碼如下. m_statictitle.SetWindowText(_T("A ...… 查看全部問答∨ |
|
我想訪問一自己筆記本上的攝像頭的圖像數據,如RGB值,用來做圖像處理的的一些研究。但是不知道怎么樣才能訪問到這些數據,也不知道哪里有有相關的借口函數。請各位高手幫幫小弟。… 查看全部問答∨ |
|
DTD110系列工業無線RTU采用最先進的電子和無線通信技術,能為眾多的工業與應用提供高性能、中等距離和可靠數據傳輸的低成本解決方案。DTD110系列無線PLC有4路開關量的傳輸,4路模擬量的傳輸,距離100米~3000米均可。即可以實現點對點通信, ...… 查看全部問答∨ |
最近在LM4F232上實現了UCGUI的移植,這里給大家分享下圖片,源碼太大,不知道怎么上傳,有需要的同學可以加我QQ,906411450. 第一張: uC/GUI的入戶界面 … 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- MediaTek舉辦天璣開發者大會MDDC 2025,聯合產業伙伴加速智能體AI體驗普及和發展
- FOC電機的基本工作原理 FOC電機的優缺點對比
- PROFIBUS通訊故障解決神器PROFIBUS集線器,效果很神奇
- FOC電機的故障檢測方法 FOC電機調試技巧大全
- 【車內消費類接口測試】 泰克助力HDMI技術在車載娛樂系統中的應用與測試
- 西門子收購 DownStream Technologies,擴展 PCB 設計到制造流程
- Melexis推出32×24紅外陣列傳感器芯片MLX90642,樹立熱成像感應技術的新標桿
- 意法半導體發布STM32MP23高性價比MPU, 并延長對OpenSTLinux版本的支持期限
- OPPO 推出搭載超聲波指紋的新一代影像旗艦Find X8 Ultra
- FOC電機與BLDC電機的比較