各位大大:
現開發一支程式從一臺設備上通過RS232接收設備上的資料。我用的是MSCOMM控制元件,然后把接收和資料放到Memo控制元件內,但是出現一個情況:
理論上應該是這樣顯示才對:
@ O/S TEST ................ OK#
@ CONDUCTANCE TEST ........ OK#
@ COMPONENT TEST ......... OK#
@ INSUL TEST .............. OK#
@#
結果最后在memo控制元件上顯示成以下這樣
@ O/S TE
ST .....
........
... OK#
@ CONDUC
TANCE TE
ST .....
... OK#
@ COMPON
ENT TES
T ......
... OK#
@ INSUL
TEST ...
........
... OK#
請問要怎樣解決才能顯示成理論上的樣子
uj5u.com熱心網友回復:
沒有用過MSCOMM推測是沒有設定好控制元件引數,一幀資料的長度
uj5u.com熱心網友回復:
這個資料有結束符#,可以用這個來判斷啊,串口接收的資料先快取,然后找#字符,然后在顯示。總之不能串口接收的直接顯示,串口有沒有傳換行符.
uj5u.com熱心網友回復:
調整下控制元件的 BufferLength 試試uj5u.com熱心網友回復:
RThreshold: 通過該屬性設定產生OnComm 事件若MSComm1.RThreshold:=0,不產生OnComm 事件,
若MSComm1.RThreshold:=X,接識訓沖區每收到X位元組時,則產生OnComm 事件
資料是會有粘連的,還是需按 jankercsdn 說的先快取,再處理
uj5u.com熱心網友回復:
看看接受資料的處理uj5u.com熱心網友回復:
先開一個Buf快取資料,用#處理陣列,提取資料再顯示,串口接收沒有自動換行功能uj5u.com熱心網友回復:
用什么MSComm咯,Delphi的spcomm或者自已用API寫一個也非常簡單。ocx還得注冊,太麻煩,又不好用uj5u.com熱心網友回復:
快取資料。收完后才顯示轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/66176.html
標籤:網絡通信/分布式開發
上一篇:圖片批量疊加文字的問題
