線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1208
推到 Plurk!
推到 Facebook!

有關rs232接收資料方面的問題請教

尚未結案
johnwo
一般會員


發表:6
回覆:8
積分:2
註冊:2003-10-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-07 23:14:14 IP:218.168.xxx.xxx 未訂閱
我想用一個memo key in我想傳送的資料..用另一個memo接收資料..這邊現在沒有問題..但我想判斷這筆資料中的每一個byte..比如,我傳一組command給8051, 8051若接收正確,則會回傳.. 以下則是我現在的作法..好像無法判斷... void __fastcall TForm1::Timer1Timer(TObject *Sender) { String Temp; char inbuff[1024]; DWORD nByteRead,dwError; COMSTAT cs; ClearCommError(h_RS232,&dwError,&cs); if(cs.cbInQue > sizeof(inbuff)) { PurgeComm(h_RS232,PURGE_RXCLEAR); return; } ReadFile(h_RS232,inbuff,cs.cbInQue,&nByteRead,NULL); inbuff[cs.cbInQue] = '\0'; if(inbuff != "") { Memo4->Text = Memo4->Text inbuff; if((inbuff[0]==1) && (inbuff[1]==1) && (inbuff[2]==23)) { StatusBar1->Panels->Items[2]->Text = "ACK OK!!"; } } }
mieng
中階會員


發表:12
回覆:97
積分:81
註冊:2003-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-19 22:32:49 IP:61.221.xxx.xxx 未訂閱
您用單步執行看看 if((inbuff[0]==1) && (inbuff[1]==1) && (inbuff[2]==23)) 在上面判斷時,看看inbuff裡的資料是否都為0,是的話表示inbuff在你第一次讀出後就會自動被清除,這時簡單點的作法是多設一個tempbuff,直接將inbuff內的資料先存入tempbuff裡,之後的讀取和判斷就以tempbuff為主,你試試看呦~~
系統時間:2024-05-19 22:17:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!