#ifndef _key_h_
#define _key_h_
#include "stm32f10x_conf.h"
#include "delay.h"
#include "hardware_inc.h"
#include "includes.h"
#include "stdbool.h"
typedef struct
key_status;
typedef struct
key_trg;
void
key_init(void);
u8key_scan(key_status * key);
void
get_key_status(key_trg* key_trg);
#endif
[cpp] view plain copy
[cpp] view plain copy
#include "key.h"
/*!
* \fn: key_init
* \brief: 按鍵介面初始化
* \param: [in] void
* \return: void
* \date: 2016/11/10
*/
void
key_init(void)
/*!
* \fn: lkey_scan
* \brief: 掃瞄左按鍵的狀態,低電平代表按鍵被按下
* \param: [in] key_status * key 按鍵結構體
* --trg 按鍵觸發標誌位 1 代表按鍵被觸發 0 代表按鍵沒被觸發
* --cont 按鍵彈起標誌位 1 代表按鍵沒彈起 1 代表按鍵已彈起
* \return: u8 無意義返回值
* \date: 2016/11/14
*/
u8 lkey_scan(key_status * key)
/*!
* \fn: rkey_scan
* \brief: 掃瞄右按鍵的狀態,低電平代表按鍵被按下
* \param: [in] key_status * key 按鍵結構體
* --trg 按鍵觸發標誌位 1 代表按鍵被觸發 0 代表按鍵沒被觸發
* --cont 按鍵彈起標誌位 1 代表按鍵沒彈起 1 代表按鍵已彈起
* \return: u8 無意義返回值
* \date: 2016/11/14
*/
u8 rkey_scan(key_status * key)
/*!
* \fn: get_key_status
* \brief: 獲取按鍵狀態函式
* \param: [in] key_trg * key_trg 按鍵標誌位
* -- _bool left_trg 左按鍵觸發標誌位
* -- u8 ltmr 左按鍵定時器
* -- u8 lcnt_trg 左模擬佇列
* -- _bool right_trg 右按鍵觸發標誌位
* -- u8 rtmr 右按鍵定時器
* -- u8 rcnt_trg 右模擬佇列
* \return: void
* \date: 2016/11/14
*/
void
get_key_status(key_trg* key_trg)
} else
if(lkey_status.cont == 0)//按鍵被彈起
if(rkey_status.trg)
} else
if(rkey_status.cont == 0)
}
STC微控制器按鍵掃瞄程式
最近在做乙個電子秤相關專案,使用stc系列微控制器作為主控晶元,專案第一階段直接使用iap15w4k58s4驅動兩個矩陣鍵盤,一切除錯順利,在專案即將結束時老闆要求使用另一塊微控制器驅動矩陣鍵盤,讀取鍵值後通過串列埠傳回之前的iap主控 理由是為了節省從矩陣鍵盤到主控板之間的長排線的成本,16p 1...
微控制器 按鍵掃瞄
按鍵掃瞄,我想應該是比較簡單的微控制器應用了,但是有時候看起來簡單的東西反而不好寫。本文拿大部分人覺得簡單的按鍵掃瞄聊聊我工作至今對於軟體結構的理解。嗯,對的,是結構,不是架構,暫時不敢提架構這個詞。下面說說我個人對於乙個按鍵檢測的 理解。按鍵檢測需要做什麼事情呢?乙個是按鍵按下的這個物理事件的檢測...
51微控制器按鍵掃瞄C程式
大二上學期做過8051微控制器的按鍵程式,當時專案要求實現按鍵控制led屏顯示並且接收gprs傳來的資料。當時為了節省成本,就去大西電子市場買來8 8的led塊,然後自己一點一點的拼接成128 16的。做完之後雖然可以執行,但是很勉強,尤其是按鍵掃瞄程式沒有下面這位哥寫得簡潔縝密,所以就貼過來,以後...