1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          java 串口(java串口數據讀取的方法是什么)

          來源:互聯網轉載 時間:2024-05-05 03:26:59

          在Java中,可以使用RXTXcomm庫或JSerialComm庫來讀取串口數據。
          1. 使用RXTXcomm庫:
          首先,你需要下載并安裝RXTXcomm庫。
          然后,使用RXTXcomm庫中的SerialPort類來打開串口連接,例如:

          importgnu.io.CommPortIdentifier;

          ?????import?gnu.io.SerialPort;

          ?????import?gnu.io.SerialPortEvent;

          ?????import?gnu.io.SerialPortEventListener;

          ?????import?gnu.io.UnsupportedCommOperationException;

          ?????

          ?????import?java.io.BufferedReader;

          ?????import?java.io.IOException;

          ?????import?java.io.InputStreamReader;

          ?????import?java.io.OutputStream;

          ?????

          ?????public?class?SerialPortReader?implements?SerialPortEventListener?{

          ?????

          ?????????private?BufferedReader?input;

          ?????????private?OutputStream?output;

          ?????

          ?????????public?SerialPortReader()?{

          ?????????????try?{

          ?????????????????//?獲取串口標識符

          ?????????????????CommPortIdentifier?portId?=?CommPortIdentifier.getPortIdentifier(“COM1”);

          ?????????????????//?打開串口連接

          ?????????????????SerialPort?serialPort?=?(SerialPort)?portId.open(“SerialPortReader”,?2000);

          ?????????????????//?設置串口參數

          ?????????????????serialPort.setSerialPortParams(9600,?SerialPort.DATABITS_8,?SerialPort.

          ?????????????????STOPBITS_1,?SerialPort.PARITY_NONE);

          ?????????????????//?獲取輸入輸出流

          ?????????????????input?=?new?BufferedReader(new?InputStreamReader(serialPort.getInputStream()));

          ?????????????????output?=?serialPort.getOutputStream();

          ?????????????????//?添加串口事件監聽器

          ?????????????????serialPort.addEventListener(this);

          ?????????????????serialPort.notifyOnDataAvailable(true);

          ?????????????}?catch?(Exception?e)?{

          ?????????????????e.printStackTrace();

          ?????????????}

          ?????????}

          ?????

          ?????????@Override

          ?????????public?void?serialEvent(SerialPortEvent?event)?{

          ?????????????//?串口數據可用時觸發該事件

          ?????????????if?(event.getEventType()?==?SerialPortEvent.DATA_AVAILABLE)?{

          ?????????????????try?{

          ?????????????????????//?讀取串口數據

          ?????????????????????String?inputLine?=?input.readLine();

          ?????????????????????System.out.println(“接收到的數據:”?+?inputLine);

          ?????????????????}?catch?(IOException?e)?{

          ?????????????????????e.printStackTrace();

          ?????????????????}

          ?????????????}

          ?????????}

          ?????

          ?????????public?void?sendData(String?data)?{

          ?????????????try?{

          ?????????????????//?發送數據到串口

          ?????????????????output.write(data.getBytes());

          ?????????????}?catch?(IOException?e)?{

          ?????????????????e.printStackTrace();

          ?????????????}

          ?????????}

          ?????

          ?????????public?static?void?main(String[]?args)?{

          ?????????????SerialPortReader?reader?=?new?SerialPortReader();

          ?????????????reader.sendData(“Hello,?Serial?Port!”);

          ?????????}

          ?????}

          在控制臺輸出會接收到的串口數據。
          2. 使用JSerialComm庫:
          首先,你需要下載并導入JSerialComm庫。
          然后,使用JSerialComm庫中的SerialPort類來打開串口連接,例如:

          ????import?com.fazecast.jSerialComm.SerialPort;

          ?????import?com.fazecast.jSerialComm.SerialPortDataListener;

          ?????import?com.fazecast.jSerialComm.SerialPortEvent;

          ?????

          ?????public?class?SerialPortReader?{

          ?????

          ?????????public?SerialPortReader()?{

          ?????????????//?獲取串口列表

          ?????????????SerialPort[]?ports?=?SerialPort.getCommPorts();

          ?????????????if?(ports.length?>?0)?{

          ?????????????????//?打開第一個串口連接

          ?????????????????SerialPort?serialPort?=?ports[0];

          ?????????????????serialPort.openPort();

          ?????????????????//?設置串口參數

          ?????????????????serialPort.setBaudRate(9600);

          ?????????????????serialPort.setNumDataBits(8);

          ?????????????????serialPort.setNumStopBits(1);

          ?????????????????serialPort.setParity(SerialPort.NO_PARITY);

          ?????????????????//?添加串口數據監聽器

          ?????????????????serialPort.addDataListener(new?SerialPortDataListener()?{

          ?????????????????????@Override

          ?????????????????????public?int?getListeningEvents()?{

          ?????????????????????????return?SerialPort.LISTENING_EVENT_DATA_AVAILABLE;

          ?????????????????????}

          ?????

          ?????????????????????@Override

          ?????????????????????public?void?serialEvent(SerialPortEvent?event)?{

          ?????????????????????????if?(event.getEventType()?==?SerialPort.LISTENING_EVENT_DATA_

          ?????????????????????????AVAILABLE)?{

          ?????????????????????????????//?讀取串口數據

          ?????????????????????????????byte[]?buffer?=?new?byte[serialPort.bytesAvailable()];

          ?????????????????????????????int?bytesRead?=?serialPort.readBytes(buffer,?buffer.length);

          ?????????????????????????????String?inputLine?=?new?String(buffer,?0,?bytesRead);

          ?????????????????????????????System.out.println(“接收到的數據:”?+?inputLine);

          ?????????????????????????}

          ?????????????????????}

          ?????????????????});

          ?????????????}

          ?????????}

          ?????

          ?????????public?static?void?main(String[]?args)?{

          ?????????????SerialPortReader?reader?=?new?SerialPortReader();

          ?????????}

          ?????}

          在控制臺輸出會接收到的串口數據。
          這些示例代碼演示了如何打開串口連接、設置串口參數、讀取串口數據。你可以根據自己的需求進行相應的修改。

          標簽:java 串口-

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          跨行查詢要手續費嗎?要進行跨行查詢的話,去ATM機上就可以查詢了,任何一家銀行網點都是有ATM機的。ATM機不僅可以同行查詢,還可以跨行查詢;以及同城查詢、異地查詢。而且在ATM機上進行查詢一般是不會收取任何手續費用的,無論客戶是同行查詢,還是跨行查詢,又或者是同城查詢、異地查詢。如果是去銀行網點柜臺的話,那自然是查詢不了的。畢竟銀行網點柜臺只能查詢本行,不能查詢他行。而大家還需要注意,雖然在AT...

          現在的寬帶套餐琳瑯滿目,用戶的選擇范圍更廣,從100M到1000M,從預付費到后付費,從單套餐到移動寬帶融合套餐,從一年到兩年、三年等等。,容易被挑剔。那么,用戶應該如何選擇寬帶呢?以北京為例:第一,明確寬帶用途和使用環境使用環境是指自己的寬帶是單獨使用還是多戶共用寬帶。首先,如果只是用來瀏覽網頁,看電影,聊QQ,對網絡要求不高,那么可以選擇帶寬稍微低一點的,比如10M,50M。其次,如果你是網游...

          (相關資料圖)哈嘍小伙伴們 ,今天給大家科普一個小知識。在日常生活中我們或多或少的都會接觸到加多寶的老板是誰方面的一些說法,有的小伙伴還不是很了解,今天就給大家詳細的介紹一下關于加多寶的老板是誰的相關內容。陳鴻道,廣東東莞人,“涼茶大王”,現為加多寶集團及香港鴻道(集團)有限公司董事長。他經營的紅色易拉罐裝王老吉涼茶的銷售額超過100億元人民幣,成為銷售額超越了可口可樂和百事可樂的中國罐裝飲料市場...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>