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

存取RS232程式問題

答題得分者是:暗黑破壞神
KENI_LIN
中階會員


發表:86
回覆:267
積分:90
註冊:2004-05-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-23 08:31:57 IP:220.228.xxx.xxx 未訂閱
大家好,不知道有沒有人實際try過這個程式,這是參考網友的指點,原始來源請參考http://delphi.ktop.com.tw/topic.php?TOPIC_ID=58630    我依照說明重新建立,遇到以下兩個問題:  < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=19427923&CC=434497"> 問題應該是指格式不相容,但我看了作者說明,應該是沒有問題,不知道是不是還少哪些步驟,下面是我尚未完成的source code: //-------------------------------------------------------------------- #> #>Text="">Text=""; COMMTIMEOUTS TimeOut; TimeOut.ReadIntervalTimeout = 0; TimeOut.ReadTotalTimeoutMultiplier = 0; TimeOut.ReadTotalTimeoutConstant = 500; //(總讀取 time out 時間 = 0.5 秒) TimeOut.WriteTotalTimeoutMultiplier = 0; TimeOut.WriteTotalTimeoutConstant = 500; //(總寫入 time out 時間 = 0.5 秒) if (BuildCommDCB("9600,n,8,1",&dcb)){ lbBuildCommDCB->Caption="BuildCommDCB 成功";} else{ lbBuildCommDCB->Caption="BuildCommDCB 失敗";} handle=CreateFile("Com1", GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (SetCommState(handle,&dcb)) lbSetCommState->Caption="SetCommState 成功"; else lbSetCommState->Caption="SetCommState 失敗"; if (SetupComm(handle,1024,1024)) lbSetupComm->Caption="SetupComm 成功"; else lbSetupComm->Caption="SetupComm 失敗"; if (SetCommTimeouts(handle,TimeOut)) lbSetCommTimeouts->Caption="SetCommTimeouts 成功"; else lbSetCommTimeouts->Caption="SetCommTimeouts 失敗"; } //-------------------------------------------------------------------- 謝謝各位的指教! Keni Lin
------
Keni Lin
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-23 09:06:42 IP:61.66.xxx.xxx 未訂閱
我試了一下,改了三個地方    1.#include  2.if (SetCommTimeouts(handle,TimeOut)) =>if (SetCommTimeouts(handle,[red]&TimeOut[\red])) 3.Edit1->Text="";以上的程式碼把他刪除 ========================================================= 我不知到這樣算不算OK了 不過COMPILE可以過 lbBuildCommDCB->Caption="BuildCommDCB 成功"; lbSetCommState->Caption="SetCommState 成功"; lbSetupComm->Caption="SetupComm 成功"; lbSetCommTimeouts->Caption="SetCommTimeouts 成功";
KENI_LIN
中階會員


發表:86
回覆:267
積分:90
註冊:2004-05-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-23 10:24:40 IP:220.228.xxx.xxx 未訂閱
謝謝妳的指導,第2,3項我加入後,已經ok,但第 TxdBuffer='!'>Caption="沒有回應 !";return;} a ; fwrite(&RxdBuffer,1,1,outfile); while(dwNoByte != 0) { ReadFile(handle,&RxdBuffer,1,&dwNoByte,NULL); fwrite(&RxdBuffer,1,1,outfile); a ; } fclose(outfile); lbStatus->Caption="共接收了 " IntToStr(a) " Bytes"; } //-------------------------------------------------------------------- 而這一段程式會用到下列這兩個定義 FILE *infile; FILE *outfile; 但Complie時會出現"Multiple declaration for 'FILE'"等錯誤訊息產生,我想應該有少一些定義或是定義錯誤吧! 謝謝妳的指教~ Keni Lin
------
Keni Lin
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-23 11:02:41 IP:221.169.xxx.xxx 未訂閱
add 
#include 
in the head of your code. FILE is define in stdio.h http://www.mcu51.com/list.asp?id=1588 想想別人怎麼學,我們有這麼用心嗎? 憂心啊~~~~~~
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-23 11:05:58 IP:61.66.xxx.xxx 未訂閱
FILE BCB不認識,要引入才可以
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-23 11:08:14 IP:61.66.xxx.xxx 未訂閱
現在才發現 我的
 
stdio.h一直沒出現
KENI_LIN
中階會員


發表:86
回覆:267
積分:90
註冊:2004-05-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-23 12:44:13 IP:220.228.xxx.xxx 未訂閱
加入stdio.h後,compile就沒問題了! 我用兩台電腦對接 > 寒窗苦讀十年書;只待今朝狀元時!~~ ︵ / / ︵ ( ∩ ∩ ) ○ ︶ ○
------
Keni Lin
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-12-23 12:57:27 IP:221.169.xxx.xxx 未訂閱
兩台電腦要對接。 你要去買個 null modem 回來用。(我假設你不會自己做) 而NULL MODEM應該就會自己做 CTS跟RTS的硬體迴路了。 因為51只有RX&TX。如果PC端沒有把CTS&RTS的硬體流量控制 去掉。它會一直等下去。。。。。。。 你再試試看吧。 它可以動的。^_^ i use bcb 4.0
系統時間:2024-04-29 23:21:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!