|
|||||||||||
| 技術(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 |
串行通信都用中斷方式,不知道怎樣處理超時(shí)問(wèn)題 |
| 作者:joy晴天 欄目:單片機(jī) |
如果主機(jī)發(fā)出去從機(jī)沒(méi)有響應(yīng), 程序該怎么寫? |
| 2樓: | >>參與討論 |
| 作者: HWM 于 2006/12/18 12:58:00 發(fā)布:
采用重發(fā)或報(bào)錯(cuò)處理。 |
|
| 3樓: | >>參與討論 |
| 作者: joy晴天 于 2006/12/18 13:15:00 發(fā)布:
主機(jī)發(fā)送完一個(gè)字節(jié)就跳出中斷了 主機(jī)發(fā)送完一個(gè)字節(jié)就跳出中斷了(接收到數(shù)據(jù)進(jìn)入串行中斷的) 怎么知道從機(jī)反應(yīng)超時(shí)了? |
|
| 4樓: | >>參與討論 |
| 作者: HWM 于 2006/12/18 13:38:00 發(fā)布:
這取決于你所設(shè)計(jì)的通訊協(xié)議。 一般通訊協(xié)議都要求相互應(yīng)答(handshaking),如果從機(jī)接受到信息后就應(yīng)該有個(gè)應(yīng)答。 |
|
| 5樓: | >>參與討論 |
| 作者: joy晴天 于 2006/12/18 15:31:00 發(fā)布:
發(fā)一段程序 if(RI) { buf=SBUF; RI=0; if(FrameStatus==0x00)//串口接收中斷處于接收幀起始字節(jié)階段 { if(SBUF==0xAA) { FrameStatus=0x01; send(FrameStart);//FrameStart==0xAA,這里發(fā)出應(yīng)該返回0xAA //(見下一 步)如果沒(méi)有返回,怎么知道超時(shí)了, //并且要重發(fā) } } else if(FrameStatus==0x01) {if(SBUF==0xAA); else {buf=SBUF; address=buf; send(address); FrameStatus=0x02;//串口接收中斷狀態(tài)標(biāo)志更新為接收命令 } } } |
|
| 6樓: | >>參與討論 |
| 作者: yixiao2000 于 2006/12/18 15:38:00 發(fā)布:
中斷結(jié)束前啟動(dòng)定時(shí)器 中斷結(jié)束前啟動(dòng)定時(shí)器,定時(shí)器中斷檢測(cè)是否收到回應(yīng)幀 |
|
| 7樓: | >>參與討論 |
| 作者: forthlab 于 2006/12/18 17:29:00 發(fā)布:
LS說(shuō)的對(duì) 串口中斷啟動(dòng)定時(shí)器, 如果有新的串口中斷,重新設(shè)置定時(shí)器。 超時(shí),定時(shí)器觸發(fā)中斷。和看門狗類似。 |
|
| 8樓: | >>參與討論 |
| 作者: AIRWILL 于 2006/12/18 18:11:00 發(fā)布:
同意樓上的做法 用定時(shí)中斷監(jiān)控串口 |
|
| 9樓: | >>參與討論 |
| 作者: joy晴天 于 2006/12/18 19:45:00 發(fā)布:
哈哈,跟我想的差不多,太高興了 我中午想的: 超時(shí)控制:發(fā)送完就開始計(jì)時(shí),出中斷,溢出就重發(fā),否則收到數(shù)據(jù)則關(guān)閉計(jì)時(shí)器 還有個(gè)問(wèn)題問(wèn)一下:習(xí)慣上重發(fā)幾次? 我設(shè)想重發(fā)5次,這樣的話,在T0的中斷函數(shù)末尾再次啟動(dòng)T0可以嗎? |
|
| 10樓: | >>參與討論 |
| 作者: conwh 于 2006/12/18 22:27:00 發(fā)布:
通訊協(xié)議的制定和定時(shí)的檢測(cè) |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |