全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2053
推到 Plurk!
推到 Facebook!

BCB接收8051資料的問題

 
Sendre
一般會員


發表:8
回覆:21
積分:5
註冊:2007-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-03-17 23:00:56 IP:218.170.xxx.xxx 訂閱
各位先進好
我是剛學BCB的新手
最近在寫BCB接rs-232這塊時
發現了一些問題

我預計的功能

BCB==>

因為接上了三個8051所以有三個發送區
當我按下發送區A的時候
資料發送出去然後再接收
這些比照起來都沒錯誤
可是
當我在發送區B傳送的時候
接收回來的值卻是上筆的資料
也就是發送區A方才送出的資料
被接收到B區了
可是當我又按了一次B區的接收時
B區收到的資料就正常了

我不懂的是
怎麼會去收到上筆的資料??
請各位先進指導
謝謝

暗黑破壞神
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-03-18 08:28:30 IP:61.225.xxx.xxx 訂閱
你要不要查一下站內文章?
這類的文章我回過不少了。
Sendre
一般會員


發表:8
回覆:21
積分:5
註冊:2007-03-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-03-18 10:56:58 IP:218.170.xxx.xxx 訂閱
這個問題
我加了一顆BUTTON觸發
結果就不會在收到上筆資料了
雖然暫時解決了
可是該怎麼改掉可以不用使用這種方法就可以直接收到值啊??
yorkland
高階會員


發表:2
回覆:138
積分:108
註冊:2004-12-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-03-19 17:59:45 IP:218.210.xxx.xxx 訂閱
下指令後, 不能立即讀取, 要Sleep(n)一下再讀取即可。
一般我的程式是Sleep(50), 這數字提供你參考, 這也是為什麼你用一個Button來觸發就可以避開的原因。
Sendre
一般會員


發表:8
回覆:21
積分:5
註冊:2007-03-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-03-19 19:16:19 IP:218.170.xxx.xxx 訂閱
喔!!
原來是用這個方法呀...
我之前不知道用了FOR迴圈讓它產生延遲
for(i=0;i<10000000;i );
像我用這樣的方式可以嗎?
好像有點笨...

謝謝兩位前輩的指導
以後有不會的地方
希望能繼續給予指導

Sendre
一般會員


發表:8
回覆:21
積分:5
註冊:2007-03-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-03-19 19:34:35 IP:218.170.xxx.xxx 訂閱
那個...
還是會收到上一筆的資料...
這部份該怎麼解決?
我有試過把Sleep(50);放在接收部分
可是出來還是會第一筆沒收到變成

1
2 0
3 0
4 0
(1~4是迴圈 0是測試用的傳送接收值)
輸入第二次不同的值執行之後變成

10
25
35
45


系統時間:2024-04-23 19:40:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!