请教串口通信问题(Java)--用java串口程序读取不是一整条信息
我的问题是为什么串口每次串口读取的数据都是一个字节,而不是把整个字符串读取出来。例如下面的程序读取的内容为
A-------
d-------
d-------
r------
e-----
s-----
而不是Address=0x1,humidity=62,Temperature=29,Voltage=2315---------
芯片是10秒钟发送一次数据。代码如下:
public void serialEvent(SerialPortEvent event) {
int data=0;
StringBuffer inputbuffer=new StringBuffer();
switch(event.getEventType()) {
case SerialPortEvent.BI:/*Break interrupt,通讯中断*/
case SerialPortEvent.OE:/*Overrun error,溢位错误*/
case SerialPortEvent.FE:/*Framing error,传帧错误*/
case SerialPortEvent.PE:/*Parity error,校验错误*/
case SerialPortEvent.CD:/*Carrier detect,载波检测*/
case SerialPortEvent.CTS:/*Clear to send,清除发送*/
case SerialPortEvent.DSR:/*Data set ready,数据设备就绪*/
case SerialPortEvent.RI:/*Ring indicator,响铃指示*/
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:/*Output buffer is empty,输出缓冲区清空*/
break;
case SerialPortEvent.DATA_AVAILABLE:/*Data available at the serial port,端口有可用数据。读到缓冲数组,输出到终端*/
while(data!=-1){
try{
data=inputStream.read();
if(data==-1){
//break;
}
inputbuffer.append((char)data);
} catch (IOException e) {}
System.out.print(inputbuffer.toString());
break;
}
}
System.out.println("------");
}
我做的应用是从串口中接受温度,湿度信息然后插入数据库,现在每次读取的数据都是分开的,有没有方法可以一次性的接受传感器发送的单次数据