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