|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于mscomm編寫串口字節(jié)接收的問題 |
| 作者:shadowman 欄目:通信技術(shù) |
關(guān)于mscomm編寫串口字節(jié)接收的問題,請幫忙 有幾個關(guān)于用mscomm進(jìn)行串口編程的問題,請大蝦們幫忙: 雙機(jī)以2400baud的速率相互通過MODEM通信,主機(jī)是用來接收數(shù)據(jù)的,客戶機(jī)發(fā)送是采用1k xMODEM格式發(fā)送,現(xiàn)在問題就是在主機(jī)的數(shù)據(jù)接收編程中遇到的。mscomm里面有個接收緩沖區(qū)的門限屬性設(shè)置,我設(shè)置為1(如果設(shè)為0,則一次oncomm事件只能收8個字節(jié)),那么只要接收緩沖區(qū)一收到字符(因?yàn)槲倚枰獙γ總數(shù)據(jù)包的第1,2,3個字節(jié)進(jìn)行判斷處理),就會產(chǎn)生一個oncomm事件,我就在這個事件里編寫數(shù)據(jù)接收程序,我的接收程序無非就是判斷首字節(jié)是否是stx(或者soh)第2字節(jié)是否為期望的序號,并存儲下1024個數(shù)據(jù)字節(jié),最后判斷2個crc的字節(jié)是否出錯,并以此作出ack,或者nak,F(xiàn)在問題是,我有兩種處理方法, 一種是在oncomm事件處理中一開始先延遲一段時間,以便在這段時間內(nèi)整個數(shù)據(jù)包(1029個字節(jié))都接收完畢,然后再對inbuffer里的字節(jié)作相應(yīng)的處理,這樣就是在一個事件中就處理完畢了,,可這時的問題就是需要延遲多少時間,才能保證數(shù)據(jù)都接收完,如果這個時間長的話,就不是很合適了。還有就是oncomm事件會不會每收到一個字符就產(chǎn)生一次(那要產(chǎn)生1029次那),如果產(chǎn)生的話會不會對我當(dāng)前的事件(第一個事件)處理有影響,如果在當(dāng)前事件處理過程中沒有影響,會不會在事后影響,也就是說這一系列的oncomm事件都排在事件隊(duì)列中,當(dāng)前事件處理完畢后,這些事件還是相繼產(chǎn)生,要求程序去處理它們。 另一種是oncomm事件處理中不延遲,這樣的意圖是想,一個個字節(jié)處理,也就是收到一個字節(jié)產(chǎn)生一個oncomm事件,事件中對這個字節(jié)進(jìn)行相應(yīng)處理。接著又收到一個字節(jié),又產(chǎn)生一個oncomm事件,再對這個字節(jié)處理,,以此類推。這樣的話 就有個問題,就是會不會在我對當(dāng)前字節(jié)還沒處理完(也就是oncomm事件過程還沒結(jié)束),下一個字節(jié)就收到了,從而產(chǎn)生新的oncomm事件,這樣影響到我的正常處理過程。 3。如果我一次oncomm事件接收固定字節(jié)數(shù),怎么實(shí)現(xiàn)。 還有沒有其他的解決方法。 以上是幾個問題,另外還有個附帶的問題,就是vb里面可不可以進(jìn)行位操作 |
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |