Java和單片機通信是一個常見的場景,Java是一種高級語言,單片機則是一種嵌入式系統,兩者之間的通信可以通過串口來實現。串口通信是指將數據從一個串口發送到另一個串口,通信中需要設置波特率、數據位、停止位、校驗位等參數。
//Java代碼示例 import java.io.*; import java.util.*; public class SerialPortTest { public static void main(String[] args) { try { // 串口對象 SerialPort serialPort = new SerialPort("COM1"); // 設置參數 serialPort.setParams(9600, 8, 1, 0); // 輸入流 InputStream inputStream = serialPort.getInputStream(); // 輸出流 OutputStream outputStream = serialPort.getOutputStream(); // 發送數據 String data = "Hello World!"; outputStream.write(data.getBytes()); // 接收數據 byte[] buffer = new byte[1024]; int len = inputStream.read(buffer); String response = new String(buffer, 0, len); System.out.println(response); } catch (Exception e) { e.printStackTrace(); } } }
以上是Java串口通信的示例代碼,可以通過設置串口號以及參數,來發送和接收數據。單片機中的串口通信方式也類似,可以通過指定波特率等參數來進行通信。
//單片機代碼示例 #includeSoftwareSerial mySerial(2, 3); // RX, TX void setup() { Serial.begin(9600); mySerial.begin(9600); } void loop() { if (mySerial.available()) { char data = mySerial.read(); Serial.write(data); } if (Serial.available()) { char data = Serial.read(); mySerial.write(data); } }
以上是單片機串口通信的示例代碼,通過使用SoftwareSerial庫來實現對指定串口的讀寫操作。在 loop 函數中,如果有數據可用,則讀取并寫入另一個串口中。這樣就可以實現Java和單片機之間的通信。