手機java藍牙通信協議編程和電路圖
時間:2016-04-16 09:41 來源:ob体育竞彩
1 開發環境配置
首先安裝J2SE即JDK(jdk-6u22-windows-i586-p.exe),安裝完成後,在“我的電腦—》屬性—》高級”中,配置java環境變量,設置3項屬性,JAVA_HOME,PATH,CLASSPATH,若已存在則點擊“編輯”,不存在則點擊“新建”, JAVA_HOME指明JDK安裝路徑,PATH使得係統可以在任何路徑下識別java命令,設為%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,CLASSPATH為java加載類(class or lib)路徑,隻有類在classpath中,java命令才能識別,設為.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。
接著安裝WTK(sun_java_wireless_toolkit-2_5_2-ml-windows) ,默認路徑是C:\WTK25。WTK 的全稱是Sun J2ME Wireless Toolkit ,是Sun的無線開發工具包。以上軟件均可以在sun的官方網站免費下載。
最後安裝Eclipse作為開發環境,J2ME開發包工具可以被綁定在這些集成開發環境中,進一步提高開發效率。本設計用的是Eclipse3.6.2和EclipseMe1.7.9版本的軟件。
2 藍牙連接
手機藍牙和藍牙串口模塊之間的連接,是程序設計的重點,也是難點。這個連接過程就是創建一個藍牙客戶端,分查找設備、查找服務、獲得連接URL和建立連接4個主要步驟。具體代碼如下:
//查找藍牙設備
public void MyInquiry() {
try {
//獲得本地設備
LocalDevice localDevice = LocalDevice.getLocalDevice();
//獲得發現代理
discoveryAgent = localDevice.getDiscoveryAgent();
//開始查找設備
discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this);
} catch(Exception e) {
e.printStackTrace();
}
}
// DiscoveryListener接口,記錄已找到藍牙設備並顯示
public void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass cod) {
try{
sel.append(remoteDevice.getFriendlyName(true),null);
} catch(Exception e){
sel.append(remoteDevice.getBluetoothAddress(),null);
} finally{
remoteDevices.addElement(remoteDevice);
}
}
// DiscoveryListener接口,查找設備完成
public void inquiryCompleted(int discType) {
if (remoteDevices.size() > 0) {
//加入其它代碼,如查找服務
}
else {
}
}
//查找服務
public void MyServices(){
try {
RemoteDevice remoteDevice = (RemoteDevice)remoteDevices.elementAt(sel.getSelectedIndex());
discoveryAgent.searchServices(attrSet, uuidSet, remoteDevice , this);
} catch(Exception e) {
e.printStackTrace();
}
}
// DiscoveryListener接口,服務查找成功,得到連接ULR
public void servicesDiscovered(int transID, ServiceRecord[] servRecord){
DataElement serviceNameElement = servRecord[sel.getSelectedIndex()].getAttributeValue(0x0100);
String _serviceName = (String)serviceNameElement.getValue();
String serviceName = _serviceName.trim();
btConnectionURL = servRecord[sel.getSelectedIndex()].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
}
//DiscoveryListener接口,查找服務完成
public void serviceSearchCompleted(int transID, int respCode) {
if (respCode == DiscoveryListener.SERVICE_SEARCH_COMPLETED) { } else {}
}
//打開連接,建立輸入、輸出通道
StreamConnection connection = (StreamConnection)Connector.open(btConnectionURL);
經過以上步驟,手機和藍牙串口模塊建立起了連接,用read、write方法可以互相通信,傳輸數據了。
3 波形顯示
把以前的示波器加了藍牙模塊,測試程序用的是三星S3370手機,屏幕分辨率為320x240,屏幕上、下側用於顯示手機狀態和按鍵信息,實際可編程使用的分辨率為200x240,上部170x240部分顯示波形,下部30x240顯示量程、周期選擇菜單。按示波器的習慣把顯示波形的界麵畫出格子,通過查格子可以大致判斷波形的幅值和周期。效果圖如下:
看過《手機java藍牙通信協議編程和電路圖》的人還看了以下文章
|
舊手機的芯片能不能拆下來用 |
舊手機上拆下的芯片是可以用的,但是技術難度比較大,一般隻有技術大牛才能做到這一點! 拆解芯片其實是一件非常困難的事情。你必須拆開手機,融化產品,在不同的操作中要更加小心,所以這種精細的工作,也許拆解芯片的成功率很低。如果我們在智能手機上使用... |
|
手機充電器是怎麼變壓的 |
手機充電器用的是高頻電子變壓器降壓,不是用的傳統矽鋼片鐵芯變壓器降壓。所以手機充電器是用了變壓器降壓的,而且是實現了高低壓電隔離的方式降壓,以保證充電時的人身和設備安全。 傳統矽鋼片鐵芯變壓器分初次級線圈分別繞在矽鋼片上,初級通上220V50HZ交... |
|
可以用手機充電器改裝給理發器充電嗎 |
先說一下理發器的充電器,說實在的理發器的充電器其實是內置在其主板上,外麵連接部分就是一條零線和火線,這兩線分別與理發器的尾插相連,題主說自己這條線不見了,完美的辦法就是再買一條相同規格的充電線,但是由於品牌因素也許買不到相同型號,那我們可... |
|
手機的燈泡能安頭燈上嗎 |
用手機相機上的補光LED裝到頭燈上。 雖然可以替換,或者是安裝到頭燈,但不是直接裝。 需要考慮手機燈泡的工作條件。 你所指的手機燈泡是LED(發光二極管)。 現在的手機燈泡亮度都比較高,作為頭燈的光源,也是可以勝任的。 就像下圖這樣。 手機上的燈泡是... |