[問題] SerialPort收值問題(使用rxtx)

作者: future314 (未來π)   2015-07-01 20:45:08
因需求需要用java做PC端的人機介面
功能是會有資料不斷的從單晶片經RS232送出(baud rate 115200,
每0.01秒送出一資料封包)
人機介面收到值經處理後畫出圖形
現在問題是會不斷收到同樣的值
假如晶片端送出的值一開始為零依序遞增
照理說PC端畫出的圖形應該是一條斜值線
但問題是每次都會得到一樣的值
例如晶片送出為0 1 2 3 4 5 6 7 8 9 10 11......(用超級終端機看過)
可是println出來的卻是0 0 0 1 1 1 1 1 1 2 2 2 5 5 6 6 6 7....
資料會有些重複,有些直接消失 畫出來的圖形像階梯狀
到底是怎麼回事呢?? 應該要怎麼改才對?
程式大至上跟下面網址的範例一樣
http://rxtx.qbang.org/wiki/index.php/Two_way_communcation_with_the_serial_port
也有試過Event形式,但結果還是相同......
程式碼如下
public void serialEvent(SerialPortEvent evt) {
if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE)
{
try
{
byte[] buffer = new byte[1024];
input.read(buffer);
System.out.println(analysisData(buffer)
}
catch (Exception e)
{
System.out.println(e.Message());
}
}
}
}
作者: DumDumGenius (準大學生)   2015-07-03 23:42:00
設定每0.01秒收一次呢程式執行太快或堵塞導致重複抓取或沒取到猜測啦 不一定對 以做過遊戲要刷新畫面遇過類似問題
作者: deo2000 (800IM)   2015-07-04 02:52:00
有用其他工具Monitor過Rx Tx嗎?搞不好MCU就送錯了

Links booklink

Contact Us: admin [ a t ] ucptt.com