|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
做過串口VC程序的,請(qǐng)教一下 |
| 作者:將軍令 欄目:技術(shù)交流 |
我使用開放源代碼的CSerialPort來(lái)設(shè)計(jì)我的串口系統(tǒng),什么都好了,就是不能檢測(cè)通訊的對(duì)方串口是否拔掉 我想這個(gè)用通訊超時(shí)應(yīng)該可以搞定的,但是我按照以下這樣設(shè)置,捕捉不到異常! 我的速率1200bps/8N1 // 設(shè)置超時(shí)的函數(shù) //====================================== void serial_link_layer::herald_set_timerout(void) { commtimeouts.ReadIntervalTimeout = 30; // 讀取每字節(jié)的超時(shí) commtimeouts.ReadTotalTimeoutMultiplier = 30; // 讀串口數(shù)據(jù)的固定超時(shí) // 總超時(shí) = ReadTotalTimeoutMultiplier * 字節(jié)數(shù) + ReadTotalTimeoutConstant commtimeouts.ReadTotalTimeoutConstant = 200; // 寫每字節(jié)的超時(shí) commtimeouts.WriteTotalTimeoutMultiplier = 30; // 寫串口數(shù)據(jù)的固定超時(shí) commtimeouts.WriteTotalTimeoutConstant = 200; } //====================================== |
| 2樓: | >>參與討論 |
| 作者: heyunhuan 于 2006/12/28 20:41:00 發(fā)布:
一定要設(shè)置超時(shí)的函數(shù)嗎 ? 你可以開一個(gè)定時(shí)器啊! 過一定時(shí)間沒有數(shù)據(jù)則表示“超時(shí)” 每次接到數(shù)據(jù)的時(shí)候,則清一下定時(shí)器。 |
|
| 3樓: | >>參與討論 |
| 作者: lixun00 于 2006/12/29 20:56:00 發(fā)布:
不明白這個(gè)類,一般超時(shí)有回調(diào)函數(shù)要設(shè)置的 |
|
| 4樓: | >>參與討論 |
| 作者: 赤鑄 于 2006/12/30 9:10:00 發(fā)布:
設(shè)置了超時(shí)還要調(diào)用相關(guān)的檢測(cè)函數(shù) 例如 WinAPI 的 GetLastError,或者這個(gè)類也提供了相應(yīng)的函數(shù) 其實(shí)很麻煩,不如定時(shí)控制 |
|
| 5樓: | >>參與討論 |
| 作者: 將軍令 于 2006/12/30 11:32:00 發(fā)布:
用定時(shí)器是不是使用一個(gè)單獨(dú)線程去監(jiān)控通訊的線程? |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |