主題:[求助]EM9160的485通信問題 共有72252人關注過本帖 |
---|
客人 |
1樓 |
[求助]EM9160的485通信問題 Post By:2013-4-6 21:17:00 [只看該作者]
大家好,請問EM9160有沒有RS485通信的示例程序或者相關資料,如果有,麻煩發到郵箱:yf_1937@163.com,謝謝
|
|
單帖管理 | 引用 | 回復 |
客人 |
2樓 |
Post By:2013-4-6 22:31:00 [只看該作者]
問題是這樣的,我利用兩塊EM9160,一塊發送,一塊接收,兩塊主板都與測試計算機通過網絡連接,發送端把從網絡接收到的數據發送到接收端,接收端接收到數據,然后通過網絡傳輸到測試計算機,結果接收端接收到了亂碼,雖然RS485是半雙工通信,但是由于我每塊主板只進行單一的發送或者接收操作,所以不太明白這是怎么回事,如果有相關的測試程序,麻煩發給我一份,謝謝 |
|
單帖管理 | 引用 | 回復 |
yy |
3樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2013-4-7 9:17:00 [只看該作者]
RS485就使用串口例程就可以測試了,你能貼下你RS485發送的2進制數據和收到的2進制數據嗎?
如果你用ANSI發,然后收的時候用UNICODE收就有可能出現亂碼。 你直接測試兩塊EM9160的RS485的發送接收,應該沒有問題的。你中間還有兩次網絡傳輸,也可能是那里的代碼出錯了。
|
單帖管理 | 引用 | 回復 |
客人 |
4樓 |
Post By:2013-4-7 10:06:00 [只看該作者]
謝謝,你提到的問題我已經做過測試,網絡傳輸沒有問題,在發送端,主板接收到網絡數據后會在LCD上顯示,顯示與網絡傳輸的數據一致,在接收端,接收到485上過來的數據之后,也會首次在LCD上顯示,然后才會進行網絡傳輸,LCD上顯示的就已經是亂碼了。使用的就是RS232通信類。 |
|
單帖管理 | 引用 | 回復 |
客人 |
5樓 |
Post By:2013-4-7 10:07:00 [只看該作者]
正因如此,才覺得比較困惑,所以才想要你們測試過的485通信程序
|
|
單帖管理 | 引用 | 回復 |
客人 |
6樓 |
Post By:2013-4-7 10:15:00 [只看該作者]
例如,我發送的是: yangfeng 結果收到的是:|?? 收到數據的十六進制是:80 FF 7C DF FF DF FF ; |?? |
|
單帖管理 | 引用 | 回復 |
客人 |
7樓 |
Post By:2013-4-7 10:22:00 [只看該作者]
我也可以確定這個應該不是編碼問題,因為在十六進制里面,連著有三個FF,而我發送的yangfeng中,完全不存在同樣的三個字符,但是每次發送yangfeng時,返回的都必然是同樣的十六進制,只有在發送不同的字符時,接收到字符才會有變化,所以具體怎么回事,我也說不清楚。 |
|
單帖管理 | 引用 | 回復 |
客人 |
8樓 |
Post By:2013-4-7 11:58:00 [只看該作者]
剛才又發現了一個問題,發送0時,返回0xb8,發送1時,返回0xee,發送2時,返回0xbb,發送3時,返回0xf7,發送4時,返回0xbe,發送5時,返回0xff,我將這些字符連起來,發送012345,返回卻是:b8 6e f7 37 ff ff,重啟系統(包括計算機和主板),先發送012345,依次發送:5,4,3,2,1,0,返回結果依次是:ff,be,f7,bb,ee,b8,與之前的測試一致。
|
|
單帖管理 | 引用 | 回復 |
客人 |
9樓 |
Post By:2013-4-7 12:00:00 [只看該作者]
重啟系統后發送012345的返回結果還是:b8 6e f7 37 ff ff,
|
|
單帖管理 | 引用 | 回復 |
客人 |
10樓 |
Post By:2013-4-7 12:01:00 [只看該作者]
著急呀,哪位大哥給點建議?
|
|
單帖管理 | 引用 | 回復 |
yy |
11樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2013-4-7 12:54:00 [只看該作者]
我用光盤里的串口例程測試沒問題啊,發送接收都沒問題啊,你的波特率是多少?發送接收是一樣的嗎?還有其他參數,有什么特別的嗎?你試下發單字節看看發送和接收分別是什么呢?
對了,那個測試例程里,當收到數據后會立刻返回相同數據,板子RS485是半雙工的,所以你要把回發這段先注釋掉,不然同時發送和接收就有可能出錯。
[此貼子已經被作者于2013-4-7 12:59:40編輯過]
|
單帖管理 | 引用 | 回復 |
zxw |
12樓 |
Post By:2013-4-7 12:56:00 [只看該作者]
你需要注意一下,RS485是半雙工在工作!
|
|
單帖管理 | 引用 | 回復 |
客人 |
13樓 |
Post By:2013-4-7 13:15:00 [只看該作者]
是啊,完全只是把step2_serial和step3_tcptest稍微改動了一下,只是把回發變成了TCP發送而已 |
|
單帖管理 | 引用 | 回復 |
客人 |
14樓 |
Post By:2013-4-7 13:41:00 [只看該作者]
我找到原因了,當我焊接上H11L1等隔離元件后,作為接收端,不存在問題,但發送會導致亂碼,當我去掉隔離電路后,發送接收都正常
|
|
單帖管理 | 引用 | 回復 |
茶茶 |
15樓 信息 | 搜索 | 郵箱 |
加好友 發短信 |
Post By:2013-4-16 9:25:00 [只看該作者]
H11L1隔離器件如果不去掉,應該如何解決呢?求教 |
單帖管理 | 引用 | 回復 |
x10 |
16樓 |
Post By:2013-4-16 20:59:00 [只看該作者]
RS485半雙工的意思是在任意時刻只能處于接收或者發送。所以請堅持你的收發邏輯。
|
|
單帖管理 | 引用 | 回復 |