主題:如何觸發(fā)讀事件? 共有35982人關(guān)注過本帖 |
---|
Rite2009 |
1樓 |
如何觸發(fā)讀事件? Post By:2009-10-25 15:42:00 [只看該作者]
我打開了幾個(gè)串口,其中一個(gè)串口調(diào)用接收回調(diào)函數(shù)時(shí),發(fā)現(xiàn)DataBuf[]里只有部分?jǐn)?shù)據(jù),也就是觸發(fā)讀事件不對。要如何設(shè)置?
也就是說我串口進(jìn)來多少個(gè)字節(jié)觸發(fā)讀事件? |
|
單帖管理 | 引用 | 回復(fù) |
Rite2009 |
2樓 |
Post By:2009-10-25 16:43:00 [只看該作者]
我用從單片機(jī)控制AD采集,然后串口發(fā)送到模塊,模塊串口接收。我每次發(fā)送的數(shù)據(jù)為"AT+D=+1.235436+1.235411……",大概80個(gè)字節(jié),可是到了接收回調(diào)函數(shù)里發(fā)現(xiàn)DataBuf[]里就有"AT+D=+1.",后面的沒了,可是我設(shè)置斷點(diǎn)后再循環(huán)一圈,DataBuf[]里就有兩次發(fā)送的數(shù)據(jù)。我用的例子程序的串口類。怎么設(shè)置串口類中的數(shù)據(jù)觸發(fā)事件?也就是說在接收到多少個(gè)字節(jié)或者什么標(biāo)志字符,再觸發(fā)接收事件?
|
|
單帖管理 | 引用 | 回復(fù) |
x10 |
3樓 |
Post By:2009-10-25 18:03:00 [只看該作者]
串口驅(qū)動(dòng)程序在收到8個(gè)字節(jié)后,就會(huì)發(fā)出RxEvent。客戶的應(yīng)用數(shù)據(jù)格式的解析是由應(yīng)用程序來完成的。一般來講,應(yīng)用程序應(yīng)當(dāng)有以惡搞接收解析線程,負(fù)責(zé)處理來自串口的數(shù)據(jù),并組成應(yīng)用層的數(shù)據(jù)幀。這方面可參考http://www.huochepiao123.com.cn/article/article2009326.html中有關(guān)接收DL645規(guī)約數(shù)據(jù)幀的處理方法。
|
|
單帖管理 | 引用 | 回復(fù) |
Rite2009 |
4樓 |
Post By:2009-10-26 8:13:00 [只看該作者]
那8個(gè)字節(jié)就觸發(fā)RxEvent事件,在觸發(fā)事件后我并不做讀處理,然后等到下一個(gè)事件觸發(fā),甚至下下一個(gè)事件觸發(fā),直到DataBuf[]中有我的全幀數(shù)據(jù)我再去讀和處理DataBuf[],然后再清空DataBuf[]行不行?
|
|
單帖管理 | 引用 | 回復(fù) |
Rite2009 |
5樓 |
Post By:2009-10-26 8:31:00 [只看該作者]
貌似解決了。我在接收回調(diào)函數(shù)里把接收的數(shù)據(jù)拼接起來,直到接收到我的每一次全部數(shù)據(jù),再做相應(yīng)處理。因?yàn)槲业臄?shù)據(jù)幀字節(jié)數(shù)確定,所以這樣可以實(shí)現(xiàn),不知道會(huì)不會(huì)出問題。
另外,我程序在編譯運(yùn)行的時(shí)候,偶爾會(huì)彈出一個(gè)信息對話框,說First-chance   exception   in   SiCh.exe:   0xC0000005:   Access   Violation.  這是個(gè)什么問題?我已運(yùn)行就到了匯編界面,然后找不到出問題的地方,貌似是哪個(gè)變量的問題。 |
|
單帖管理 | 引用 | 回復(fù) |
zhl |
6樓 |
Post By:2009-10-26 18:05:00 [只看該作者]
出現(xiàn)這個(gè)提示,應(yīng)用程序中肯定有指針的問題,需要仔細(xì)查查看。
|
|
單帖管理 | 引用 | 回復(fù) |