在做串口編程時,用MSComm控制元件,二進制模式和文本模式具體區別在哪?能不能舉個例子說明一下
uj5u.com熱心網友回復:
InputMode屬性:串口接收資料的模式, comInputModeText(0)表示以文本(ASCII)方式取回資料,comInputModeBinary(1)表示以二進制方式取回資料
comInputModeText, comInputModeBinary為預定義常量,分別表示0,1
uj5u.com熱心網友回復:
文本方式
void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
AnsiString str; // 宣告一個AnsiString型別的變數
OleVariant s; // 宣告一個用于接收資料的OleVariant變數。
if (MSComm1->CommEvent == comEvReceive) // 接識訓沖區中是否收到Rthreshold個字符。
{
if (MSComm1->InBufferCount) // 是否有字符駐留在接識訓沖區等待被取出
{
s = MSComm1->Input; // 接收資料
str = s.AsType(varString);
// 把接收到的OleVariant變數轉換成AnsiString型別
Memo1->Text = Memo1->Text + str; // 把接收到的資料顯示在Memo1中。
}
}
}
uj5u.com熱心網友回復:
下面這2個貌似二進制的,就是位元組型別,需要自己處理轉換資料型別http://zhidao.baidu.com/link?url=1kzBW1fFEwptFVZKgwp3zlHzJU6r6Haux9dwXAUnRE3Cca2xcxnS2U9FwvXmAWyEsvFDyiO7LK5UPUEHuccBZVSZ6ta10WqmrCxSbVZZ-3i
http://blog.hehehehehe.cn/a/16082.htm
uj5u.com熱心網友回復:
在處理的時候遇到一點問題:
在二進制模式下可以通過OleVariant變數來接受并決議資料,但是在文本模式下只能通過你說的,強制型別轉換成AnsiString,用OleVariant變數接受在讀取元素個數時會報錯,然后分析兩種模式下的OleVariant的type,發現二進制的VT_BYTE,文本的是VT_OleStr。
但是二進制和文本模式傳輸貌似只有回車的處理方式不同吧?
uj5u.com熱心網友回復:
二進制和文本模式傳輸對資料的解釋不同。uj5u.com熱心網友回復:
求解釋uj5u.com熱心網友回復:
http://www.doc88.com/p-4995455257208.htmluj5u.com熱心網友回復:
此書有需要嗎?《C++ Builder與RS-232串行通信控制》 范逸之 清華大學出版社
https://2.taobao.com/item.htm?id=521946220490&spm=686.1000925.0.0.tWaCyI
uj5u.com熱心網友回復:
例子舉不出來,關心其他人的例子呢 。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/93066.html
標籤:VCL組件使用和開發
