作者future314 (未來π)
看板java
標題[問題] SerialPort收值問題(使用rxtx)
時間Wed Jul 1 20:45:08 2015
因需求需要用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());
}
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.85.228
※ 文章網址: https://www.ptt.cc/bbs/java/M.1435754712.A.28C.html
推 DumDumGenius: 設定每0.01秒收一次呢 07/03 23:42
推 DumDumGenius: 程式執行太快或堵塞導致重複抓取或沒取到 07/03 23:44
推 DumDumGenius: 猜測啦 不一定對 以做過遊戲要刷新畫面遇過類似 07/03 23:46
→ DumDumGenius: 問題 07/03 23:46
推 deo2000: 有用其他工具Monitor過Rx Tx嗎?搞不好MCU就送錯了 07/04 02:52