|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請教mega128的USART通訊問題 |
| 作者:陶器 欄目:單片機 |
想做標準的MODBUS 485通訊,硬件是從芯片直接連到MAX483芯片上,加一個使能; 軟件用的GCC,用其SIGNAL()中斷; 結(jié)果是用示波器能量到進入芯片的信號(使能在接受上),但是一幀數(shù)據(jù)只能一次中斷接受一個字節(jié),接受數(shù)據(jù)還是錯誤的; 郁悶! 想請高手指點. |
| 2樓: | >>參與討論 |
| 作者: qhl2003810 于 2005/4/11 9:51:00 發(fā)布:
re 我也正在做你要做的東西,唯一的不同是我是用mega32+MAX485。我現(xiàn)在的問題是先發(fā)在收可以,先收再發(fā)就不行。 你上面說得太籠統(tǒng)了,首先要確定是不是硬件的問題,如果不是,在檢查軟件部分。 我的QQ號:362389946,上班我基本上開著Q,如果有興趣,大家可以討論一下。 |
|
| 3樓: | >>參與討論 |
| 作者: 陶器 于 2005/4/11 11:17:00 發(fā)布:
肯定不是硬件問題,軟件上的問題,但很難查出來 |
|
| 4樓: | >>參與討論 |
| 作者: zsmbj 于 2005/4/11 12:41:00 發(fā)布:
把硬件和軟件都貼出來,從你的描述很難看出問題來 |
|
| 5樓: | >>參與討論 |
| 作者: 石匠 于 2005/4/11 21:02:00 發(fā)布:
仔細檢查你的程序 首先,485的通訊是半雙工的,一般發(fā)送門和接收門通過一個非門相連.平時,門為接收狀態(tài),在程序初始化階段開AVR接收中斷,發(fā)送中斷,接收使能,發(fā)送使能.當接收到1個字節(jié)后(以8位數(shù)據(jù)位舉例)接收中斷觸發(fā),在接收中斷中接收并處理數(shù)據(jù),當需要發(fā)送數(shù)據(jù)時開發(fā)送門.數(shù)據(jù)送發(fā)送寄存器.發(fā)送完成后發(fā)送完畢中斷將觸發(fā).此時可以繼續(xù)觸發(fā).當發(fā)送完畢后即最后一次發(fā)送完畢中斷產(chǎn)生后需要適當?shù)难訒r,這樣收發(fā)通道都可以順利. |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號 |