例程說(shuō)明:通過(guò)日志查看按鍵被按下和釋放的過(guò)程。
第一步: 環(huán)境搭建
1. 軟件環(huán)境
請參考《鈦極OS(TiJOS)應用開(kāi)發(fā)環(huán)境搭建》以及《HelloWorld 第一個(gè)鈦極OS(TiJOS)應用》搭建環(huán)境并創(chuàng )建例程:ButtonSample。
2. 硬件環(huán)境
例程所需(以TiKit-T600-ESP8266A開(kāi)發(fā)套件為例):
- TiKit-T600-ESP8266A開(kāi)發(fā)板;
- TiButton模塊;
- 杜邦線(xiàn)2根;
- USB線(xiàn)2根;

使用USB線(xiàn)分別將 TiKit-T600-ESP8266A開(kāi)發(fā)板的兩個(gè)USB口連接到電腦的USB端口,并使用Ti-Dev Manager查看主板的連接是否正常。當開(kāi)發(fā)板和電腦連接成功后,按下開(kāi)發(fā)板上的Reset鍵,日志窗口會(huì )將當前開(kāi)發(fā)板的BOOT信息打印出來(lái),如下圖所示。

注意:為確保Ti-Dev Manager正常識別開(kāi)發(fā)板,請將PC端的串口操作軟件關(guān)閉,否則可能造成Ti-Dev Manager不能正常識別開(kāi)發(fā)板。
第二步:應用開(kāi)發(fā)
1. 硬件連接
所需硬件資源:TIGPIO port0的pin0。
將TiLED用杜邦線(xiàn)連接到TiKit-T600-ESP8266A開(kāi)發(fā)板:
- GND<------>GND
- PIN0<------>B1

2. 例程編寫(xiě)
在之前創(chuàng )建的工程ButtonSample中新建OneButton.java文件,并引入以下包:
import java.io.IOException;
import tijos.framework.devicecenter.TiGPIO;
import tijos.framework.sensor.button.TiButton;
import tijos.util.Delay;
import tijos.framework.sensor.button.ITiButtonEventListener;
定義OneButtonEventListener事件監聽(tīng)類(lèi),并定義按鍵的按下事件和釋放事件方法;
class OneButtonEventListener implements ITiButtonEventListener {
/**
* 按鍵按下事件處理
*/
public void onPressed(TiButton arg0) {
System.out.println("onPressed"+" time(us):"+arg0.getEventTime());
}
/**
* 按鍵釋放事件處理
*/
public void onReleased(TiButton arg0) {
System.out.println("onReleased"+" time(us):"+arg0.getEventTime());
}
}
在主類(lèi)OneButton中定義main方法,并定義所需要使用的TiGPIO port以及所需要使用的pin引腳(按照硬件設計所連接的pin編號)。然后創(chuàng )建TiGPIO對象gpio0并打開(kāi)需要使用的pin編號。最后創(chuàng )建的buttonS1對象,并與對應的pin綁定。
public class OneButton {
/**
* 程序入口,由TiJOS調用
* @param args 入口參數, TiJOS中一直等于null
*/
public static void main(String[] args) {
try {
/*
* 定義使用的TiGPIO port
*/
int gpioPort0 = 0;
/*
* 定義使用的TiGPIO pin
*/
int gpioPin0 = 0;
/*
* 資源分配,
* 將gpioPort0與gpioPin0分配給TiGPIO對象gpio0
*/
TiGPIO gpio0 = TiGPIO.open(gpioPort0, gpioPin0);
/*
* 資源綁定,
* 創(chuàng )建TiButton對象buttonS1并將gpio0和gpioPin0與其綁定
*/
TiButton buttonS1 = new TiButton(gpio0, gpioPin0);
按照上述步驟將資源分配完成后,創(chuàng )建事件監聽(tīng)對象并設置事件監聽(tīng),在事件監聽(tīng)中處理按鍵邏輯。
OneButtonEventListener lc = new OneButtonEventListener();
buttonS1.setEventListener(lc);
第三步:結果演示
將上述例程按照《HelloWorld 第一個(gè)鈦極OS(TiJOS)應用》中的方法編譯并運行,然后對S1按鍵進(jìn)行按下、釋放操作,日志窗口會(huì )顯示對應的按下和釋放信息。

源碼
源碼請參考OneButton.java