liuliangdt
liuliangdt
級別: 家園常客
![]() |
小哥是個單片機業余愛好者,接觸單片機有幾年了。但很汗顏,水平一直還在入門口徘徊。本來想弄一個類似于多站通信的網絡結構程序玩。寫相互通信就的地方卡住了,再也寫不下去。現在跪求壇友幫忙,因為寫不下去已經幾個月沒碰單片機了。太恨了··· 介紹一下通訊方案。一串信息幀有5個字節組成,主站發出一串信息幀后由對于的從站響應。因為從站要快速響應所以就設計在中斷程序里回應(回復)。問題就出在這回應的子程序。同一個子程序,在主程序里順序執行的時候和其它站是正常通訊。但要快速回應還得在中斷里執行才行。從中斷程序里發出通信信息都亂了,接收方收不到正確的信息。我已經試過了我想到可能性,但都不對。希望壇友們幫忙找出錯誤。在查錯時最好要有兩塊單片機硬件聯機,然后在它們RS-485信號處連到電腦的串口助手里看那些錯誤的字節。 如有沒講請清楚的地方待補充。 |
---|---|
|
liuliangdt
liuliangdt
級別: 家園常客
![]() |
嗯,先看看哪里有錯誤。最好在硬件上試。 |
---|---|
|
liuliangdt
liuliangdt
級別: 家園常客
![]() |
為了吸引大家的關注,我得用英文回貼:Tie zi bu neng chen a! |
---|---|
|
liuliangdt
liuliangdt
級別: 家園常客
![]() |
哥,我是菜鳥。能告訴我下面這幾句是什么意思嗎? /**table[j] != '\0' && flag == 1**/ /** j = j >= 10 ? 0 : j;**/ 還有/**table = SBUF;**/,“table”不是一組嗎? 我寫的那個例子在主程序掃描中是正常執行的。現在是不知道以后主程序會怎么寫、有多長,所以就想把通信那部分集中到中斷中來執行。到中斷后問題就來了,在對方接收到信息來判斷發送就有問題了。 您說的校驗部分我在百度上問過了,不過汗顏我看不懂。百度知道鏈條:http://zhidao.baidu.com/question/2137614590531493588.html?quesup2&oldq=1 |
---|---|
|
liuliangdt
liuliangdt
級別: 家園常客
![]() |
一起共勉一起學習吧! 那兩句我那樣寫不出來。學習了。 |
---|---|
|
liuliangdt
liuliangdt
級別: 家園常客
![]() |
老實說,我的工作跟單片機沒關系,ARM我都沒接觸過。現在想想要是單片機能從中斷程序中跳轉到主程序執行也能解決問題,這樣可以跳轉嗎? |
---|---|
|
liuliangdt
liuliangdt
級別: 家園常客
![]() |
哥,謝謝您!您的寫的匯編語言我一點都看不懂。我的思維是進入中斷程序執行后可不可以用/**goto**/這樣的語句跳到主程序中來執行?或者還有別的跳轉語句可以嗎? 真厲害,會寫匯編語言。16位跟32位的處理器好學嗎? |
---|---|
|
liuliangdt
liuliangdt
級別: 家園常客
![]() |
除了/**goto**/語句外還有別的更好的語句可用嗎? |
---|---|
|