需要一個(gè)包 comm.jar
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為普蘭企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),普蘭網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
需要一個(gè)配置文件 javax點(diǎn)抗 m.properties (工程根目錄)
(或者放在JDK里)
// 取得端口句柄
CommPortIdentifier id = CommPortIdentifier.getPortIdentifier(portName);
port = (SerialPort) id .open("SerialDemo", 30000);
port .setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
port .notifyOnDataAvailable(true);
port .notifyOnBreakInterrupt(true);
port .enableReceiveTimeout(delayTime);
讀取之類的自己寫就行了,(port .getInputStream()),完事之后別忘了關(guān)掉端口,不然下次就不能用了,只能重啟系統(tǒng)
配置文件里就一行:
Driver=com.sun點(diǎn)抗 m.Win32Driver
----------------------------------
你設(shè)個(gè)斷點(diǎn)單步調(diào)試看一下原因,那個(gè)SerialBean是你自己寫的,誰(shuí)也不知道里面整啥了,單步調(diào)試就知道哪里錯(cuò)誤。
拋出異常了Exception in thread "main" java.lang.NullPointerException
at serial.SerialBean.WritePort(SerialBean.java:114)
從這里看,是在SerialBean.java的114行(函數(shù)WritePort)的一個(gè)東西,它的值是null,所以報(bào)錯(cuò)了
發(fā)送就是像流中寫入16進(jìn)制數(shù)據(jù),java中用byte[]數(shù)組表示,至于數(shù)組怎么存放數(shù)據(jù)要看接受端的要求了,這就要協(xié)議來(lái)控制,比如數(shù)據(jù)開頭是什么,數(shù)據(jù)長(zhǎng)度,校驗(yàn)位什么的。發(fā)數(shù)據(jù)要看接受端,兩端需要統(tǒng)一,不能隨便發(fā)送。讀寫數(shù)據(jù)很簡(jiǎn)單,關(guān)鍵是處理分析數(shù)據(jù),調(diào)試最難了,有時(shí)候還會(huì)遇到數(shù)據(jù)大小端不一致,數(shù)據(jù)解析亂碼。
Comm.Output=字符串或byte
如果是可見字符,則可以直接輸出字符串,如Comm.Output="hello"
不然得用byte(數(shù)組),如
Comm.CommPort = 3 '...使用Com3口
Comm.Settings = "57600,n,8,1" '對(duì)串口通訊的相關(guān)參數(shù)。包括串口通訊的比特率,奇偶校驗(yàn),數(shù)據(jù)位長(zhǎng)度、停止位等。其默認(rèn)值 是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校驗(yàn),8位數(shù)據(jù)位,1個(gè)停止位。
Comm.OutBufferSize = 1024
If Comm.PortOpen = False Then
Comm.PortOpen = True '...打開串口
End If
Comm.OutBufferCount = 0 '...清空輸出寄存器
Dim buffer(6) as Byte
buffer(0) = 255
buffer(1) = 1
buffer(2) = 0
buffer(3) = 0
buffer(4) = 0
buffer(5) = 0
buffer(6) = 1
Comm.Output = buffer
Comm.PortOpen = False
上面確實(shí)是VB的代碼。
在VBS中,沒(méi)有類型,所以聲明數(shù)組與初始化可能為:
Dim buffer(6)
buffer(0) = CByte(255)
...
我沒(méi)試過(guò),不一定正確喲。
串口通信
藍(lán)牙模塊HC-05的調(diào)試(利用LED燈來(lái)檢驗(yàn)信號(hào)是否能正常傳輸)
zihasyu
原創(chuàng)
關(guān)注
1點(diǎn)贊·1634人閱讀
藍(lán)牙模塊HC-05的調(diào)試(利用LED燈來(lái)檢驗(yàn)信號(hào)是否能正常傳輸)
by hasyu
我所用到的硬件
BlueTooth HC-05,arduino 2560(uno也行吧) 電腦 手機(jī)
硬件的連接
不同步驟不一樣,所以丟到后面。
藍(lán)牙模塊的不同模式解讀
AT模式
首先按住藍(lán)牙模塊上的復(fù)位鍵然后再上電,看見藍(lán)牙模塊上的LED燈以2s間隔閃爍,就表示進(jìn)入了AT模式 記住串口助手的波特率設(shè)置為38400,停止位1位,數(shù)據(jù)為8位,奇偶校驗(yàn)無(wú),另外一定要勾上“發(fā)送新行”!
當(dāng)然如果使用arduino 自帶的串口調(diào)試器,你只需要9600→38400就完了,畢竟其他的都是默認(rèn)的。
當(dāng)模塊處于命令響應(yīng)工作模式(或者AT模式)時(shí)能才能執(zhí)行 AT 命令,用戶可向模塊發(fā)送各種 AT指令,為模塊設(shè)定控制參數(shù)或發(fā)布控制命令。(AT指令就是我們PC與一些終端設(shè)備(例如藍(lán)牙,WiFi模塊)之間進(jìn)行通信的,配置這些終端設(shè)備參數(shù)的一套指令。)
在別的模塊也可能會(huì)用到AT指令,雖然各有不同,但都是利用串口進(jìn)行溝通的一套“預(yù)設(shè)”指令。相對(duì)來(lái)說(shuō)HC05是相對(duì)友好的指令了。//UWB dw1000 nodemcu-BU01***沒(méi)意見吧
鏈接模式
我們發(fā)送AT+RESET之后,當(dāng)模塊LED以0.5s間隔閃爍時(shí)表示進(jìn)入自動(dòng)連接模式。 在自動(dòng)連接工作模式下模塊又可分為主(Master)、從(Slave)和回環(huán)(Loopback)三種工作角色。 當(dāng)模塊處于自動(dòng)連接工作模式時(shí),將自動(dòng)根據(jù)事先設(shè)定的方式連接的數(shù)據(jù)傳輸。
本模塊需要的是從模式。
流程目錄
進(jìn)入AT模式,藍(lán)牙模塊接軟串口并在此模式下修改藍(lán)牙配置//未接觸過(guò)AT模式和串口的話需要細(xì)心留意一下每一個(gè)步驟的先后順序。
AT模式跟藍(lán)牙模塊交流。
退出AT模式,藍(lán)牙模塊連接0 1口(RX→TX,TX→RX),然后把led接到原本藍(lán)牙模塊的位置//想換也行,大不了重新聲明個(gè)位置唄。。
寫LED燈的代碼,驗(yàn)證上傳,手機(jī)下載個(gè)藍(lán)牙串口調(diào)試的app(個(gè)人使用的是藍(lán)牙調(diào)試器),連接你的藍(lán)牙模塊(藍(lán)牙配置的時(shí)候改一個(gè)好辯認(rèn)的名字),利用串口控制led。
一.進(jìn)入AT模式
硬件連接
板子 link 藍(lán)牙模塊
軟RX,引腳8 TX
軟TX,引腳9 RX
3.3V VCC
GND GND
arduino代碼
#include SoftwareSerial.h//軟串口通信的庫(kù)
SoftwareSerial BT(8,9);//定義8,9為軟串口,相對(duì)的0,1是默認(rèn)的硬串口
void setup()
{
//開啟電腦通信串口,因?yàn)镠C-05的波特率為38400,兩者通信保持一致
Serial.begin(38400);//開啟藍(lán)牙,設(shè)置波特率38400,進(jìn)入AT模式
BT.begin(38400);
Serial.println("BT is ready!");// Serial.這里是電腦與板子交流的串口,BT.是板子和藍(lán)牙模塊的串口
}
char AT_Cmd,AT_Rec;
void loop()
{
//若是電腦發(fā)送信息
if(Serial.available()0)
{
//讀取信息,并且將信息發(fā)送給藍(lán)牙,進(jìn)行AT設(shè)置
AT_Cmd = Serial.read();
BT.print(AT_Cmd);
}
//若是接收到藍(lán)牙返回的信息:一般設(shè)置后返回OK
if(BT.available()0)
{
AT_Rec = BT.read();
Serial.print(AT_Rec);
}
}
現(xiàn)實(shí)中的動(dòng)作
1 .電腦接板子,代碼上傳,然后,,斷掉電腦和板子的連接(為了斷電)。
2 .長(zhǎng)按藍(lán)牙模塊的按鈕,接電,紅燈2s為間隔閃爍,成功進(jìn)入AT模式。
3 . 打開串口監(jiān)視器,輸入 AT 返回 OK 就算成功。
4 .開始利用電腦上的串口,借由板子作中轉(zhuǎn)站和藍(lán)牙模塊進(jìn)行AT對(duì)話。
二.AT模式跟藍(lán)牙模塊交流
//換句話說(shuō)是配置
在arduino串口需要做的事
AT+ORGL # 恢復(fù)出廠模式
AT+NAME= **# 設(shè)置藍(lán)牙名稱 **//eg: AT+NAME=bendan
AT+ROLE=0 **# 設(shè)置藍(lán)牙為從模式 **
AT+CMODE=1 # 設(shè)置藍(lán)牙為任意設(shè)備連接模式
AT+PSWD= # 設(shè)置藍(lán)牙匹配密碼//eg: AT+PSWD=dabendan
一個(gè)一個(gè)來(lái),它會(huì)回復(fù)你OK。
三.退出AT模式
拔掉電腦的USB,好了,斷電退出了。
四.寫LED燈的代碼,驗(yàn)證
第二次硬件連接
板子 link 藍(lán)牙模塊
11 LED燈
GND LED燈
3.3V VCC
GND GND
硬RX,引腳0 藍(lán)牙模塊TX
硬TX,引腳1 藍(lán)牙模塊RX
第二次代碼
void setup()
{
Serial.begin(9600);
pinMode(11,OUTPUT);
}
char ch;
void loop() {
if(Serial.available()0)
{
ch = Serial.read();
if(ch=='1')
digitalWrite(11,HIGH); //開啟小燈
else
digitalWrite(11,LOW); //關(guān)閉小燈
Serial.print(ch);
}
}
手機(jī)的藍(lán)牙調(diào)試器連接藍(lán)牙模塊,輸入1開燈,輸入非1則關(guān)燈。
至此,用led驗(yàn)證了能正常輸入輸出。
arduino
藍(lán)牙
串口通信
dell筆記本
精選推薦
廣告
HC-05藍(lán)牙模塊PC端調(diào)試軟件及指令文件
86下載·1評(píng)論
2017年3月26日
藍(lán)牙模塊HC05遇到的一些常見的問(wèn)題
6.1W閱讀·46評(píng)論·36點(diǎn)贊
2017年7月21日
HC-05藍(lán)牙模塊使用教程
7.0W閱讀·20評(píng)論·141點(diǎn)贊
2018年8月5日
學(xué)習(xí) stm32 無(wú)線藍(lán)牙模塊HC05配置與應(yīng)用(手機(jī)藍(lán)牙連接發(fā)送參數(shù))
2980閱讀·2評(píng)論·7點(diǎn)贊
2022年8月20日
HC05藍(lán)牙模塊配對(duì)步驟及AT模式設(shè)置方法(轉(zhuǎn)載并進(jìn)行部分修改)
8187閱讀·0評(píng)論·5點(diǎn)贊
2021年7月13日
藍(lán)牙模塊HC-05使用前調(diào)試
1478閱讀·0評(píng)論·0點(diǎn)贊
2021年10月24日
類似拳皇的手游
精選推薦
廣告
調(diào)試藍(lán)牙串口模塊HC-05
4460閱讀·0評(píng)論·6點(diǎn)贊
2020年3月31日
連接HC-05與HC-06
4838閱讀·4評(píng)論·7點(diǎn)贊
2018年10月28日
QT應(yīng)用編程: 編寫HC05串口藍(lán)牙調(diào)試助手(Android系統(tǒng)APP)
3333閱讀·16評(píng)論·6點(diǎn)贊
2021年5月25日
HC05與STM32進(jìn)行串口通訊實(shí)現(xiàn)與手機(jī)APP的數(shù)據(jù)透?jìng)?/p>
4724閱讀·3評(píng)論·6點(diǎn)贊
2021年2月20日
HC-05藍(lán)牙模塊AT指令調(diào)試
7057閱讀·0評(píng)論·4點(diǎn)贊
2018年9月11日
HC05藍(lán)牙模塊特點(diǎn)及使用介紹
2.9W閱讀·1評(píng)論·8點(diǎn)贊
2021年8月23日
解決HC05藍(lán)牙模塊主從配對(duì)失敗及AT模式設(shè)置方案
1.3W閱讀·4評(píng)論·12點(diǎn)贊
2019年7月9日
藍(lán)牙模塊HC-05的測(cè)試
2937閱讀·0評(píng)論·2點(diǎn)贊
2017年9月28日
HC-05藍(lán)牙模塊的配置和使用方法
1.3W閱讀·2評(píng)論·9點(diǎn)贊
2019年9月19日
HC-05(ZS-040)藍(lán)牙模塊使用詳情(藍(lán)牙模塊配置、手機(jī)藍(lán)牙控制單片機(jī)、藍(lán)牙與藍(lán)牙之間的通信)
1.1W閱讀·8評(píng)論·31點(diǎn)贊
2021年12月27日
HC-05學(xué)習(xí)筆記
4489閱讀·0評(píng)論·0點(diǎn)贊
2022年3月24日
java藍(lán)牙串口調(diào)試,HC-05藍(lán)牙串口調(diào)試
381閱讀·0評(píng)論·0點(diǎn)贊
2021年4月13日
手把手教你使用--常用模塊--HC05藍(lán)牙模塊,無(wú)線藍(lán)牙串口透?jìng)髂K,(實(shí)例:手機(jī)藍(lán)牙控制STM32單片機(jī)點(diǎn)亮LED燈)
1.0W閱讀·5評(píng)論·21點(diǎn)贊
2022年5月13日
HC-05藍(lán)牙調(diào)試基本過(guò)程
1.5W閱讀·14評(píng)論·9點(diǎn)贊
2018年9月23日
去首頁(yè)
看看更多熱門內(nèi)容
評(píng)論2
sherryaxx
贊
求源碼 謝謝