作者LM356 (熱爆了!!)
看板C_and_CPP
標題[問題] 關於RS232介面設計
時間Tue Sep 11 13:03:41 2012
各位好,最近用CLR windows form application
寫一個視窗程式接收RS232(來源8051)的資料,並將資料即時顯示繪圖
基本上,8051資料送出的部份已確認沒問題
剩下就是視窗程式這邊資料漏接的問題
拜過Google大神,有人建議如下
(1) 建立一個監控RS232埠的thread
(2) 將接收資料放置序列中
(3) 使用另一個thread做後處理(即繪圖等)
目前我的作法是用,VC2008內建的serialPort元件處理(1)的部份
(2) 則是採用Queue的方式去暫時存放資料
最後使用backgroundWorker去判斷Queue是否有東西,有的話將資料取出做後處理
但是,結果似乎沒有改善,不知道問題出在哪裡?
不知道各位先進可否可以指引我一個方向
ps. 我資料傳輸的量約 150 bytes/sec ,bps 設定為9600
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.103.111
推 hichcock:有查過是否 queue 長度不夠嗎?? 09/11 16:19
→ m490521:有沒有接usb<->RS232,若有嘗試換條看看 09/11 18:20
→ LM356:Queue長度應該夠,我嘗試過直接將資料丟到Queue後,在用一個 09/11 23:14
→ LM356:button等資料傳完,在去啟動繪圖,這樣問題會比較不明顯 09/11 23:15
→ LM356:但是如果要做到即時,速度增加,問題就會很明顯,有用過商 09/11 23:16
→ LM356:用軟體試過,RS232轉USB送過來的資料都是齊全的 09/11 23:18
推 Yshuan:我大學專題的做法跟你GOO到的一樣 09/12 19:33
推 vber:存取 Queue 的前後有加 mutex 嗎?? 09/12 20:50