free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標簽廣場
我要提問

RS-485

RS485奇怪的問題

好久沒用485了,這次想用下,結果出現(xiàn)莫名其妙的問題:首先設定485為讀狀態(tài),這時如果用數(shù)據(jù)過來可以接收得到,如果把485設為寫狀態(tài),也可以寫出去,說明485芯片及控制狀態(tài)部分是對的,但想平時讓485處于接收狀態(tài),只有寫數(shù)據(jù)時才改變狀態(tài),按理說應該是這個樣子的,但現(xiàn)象是接收到數(shù)據(jù)后,在轉為發(fā)送狀態(tài)時數(shù)據(jù)發(fā)不出去,控制端也變?yōu)榱烁唠娖?,只能是要么一直可以接收,要么一直可以發(fā)送,呆了一樣,搗估了二天還是沒找到原因,請大家?guī)头治鲆幌?,是芯片狀態(tài)不能快反應還是其他什么問題,我為了狀態(tài)變化都加了一個延時了。

提問者:Noyeet 地點:- 瀏覽次數(shù):7598 提問時間:10-15 17:04
我有更好的答案
提 交
12條回答
ywujwerwx 07-20 10:13
原因有很多,還是上電路圖...
金利恒電子譚小姐 07-19 00:58
485芯片的2、3腳連在一起控制的,用單片機控制的,就是這個控制端要么一直低可以接收數(shù)據(jù),要么一直高發(fā)送數(shù)據(jù),就是不能那種脈沖式工作,平時低,發(fā)送時才變成高。
zongyueli 07-21 23:47
485片子的RE/DE要控制好,否則就會出這種問題,有時序要求的。
www033 07-21 14:00


485的收發(fā)控制切換后,要有一定的延時,然后再發(fā)送或者接收數(shù)據(jù)。
曾經(jīng)用DSP調試過MAX1480A(帶隔離的485,單工),開啟接收或者是發(fā)送后,延時時間需要40us,然后接收或者發(fā)送數(shù)據(jù)。在由發(fā)送切換為接收時,延時需要200us,不然不能正確接收數(shù)據(jù)。
60user142 07-15 23:40
說明樓主的電路或軟件存在問題,檢查數(shù)據(jù)發(fā)送期間方向控制電平是否穩(wěn)定,同時給出接口電路圖。
ujuwefwf 07-20 13:36
感覺LZ的道理也很清楚,應當是現(xiàn)場問題,別人幫不上。

換個芯片試試。
vuwyewss 07-21 05:17


建議:
1、檢查硬件電路,比如A-B間的匹配電阻;
2、程序打斷點,用示波器關注485芯片的使能腳電平變化是否跟你預想的一樣;
3、用串口助手監(jiān)控485總線上的收發(fā)數(shù)據(jù)是否正確。
根據(jù)LZ的描述,應該是收發(fā)控制的時序問題,遇到問題多靜心思考。

腦洞大賽11 07-22 08:41
上圖會才好分析
Green_LJ 07-18 17:57
RW = 1;
Delay_us(40);
HalUARTWrite( SERIALPORT, Data[5],6);
Delay_us(200);
RW = 0;
就是發(fā)不出去,如果讓RW一直等于1,就可以發(fā)送出去,數(shù)據(jù)也是對的?;蛘呷绻鸕W一直等于0,則也可以接收,數(shù)據(jù)也是對的,為什么哪?硬件應該沒問題吧,時序也對,還有什么情況產(chǎn)生這種現(xiàn)象哪?
小馬哥996 07-22 21:37
可能你HalUARTWrite( SERIALPORT, Data[5],6);這個子程序中沒有等到所有數(shù)據(jù)發(fā)送完成就退出了
要特別注意最后一個字節(jié)是否發(fā)送,

通常數(shù)據(jù)寫入到發(fā)送緩沖,只代表啟動一個字節(jié)的發(fā)送,不代表發(fā)送完成的!
對WR=0的操作一定要等到發(fā)送完成才可以!

比如51芯片,產(chǎn)生發(fā)送中斷時,只表示SBUF的數(shù)據(jù)已被取走,但數(shù)據(jù)還沒有被發(fā)送哦,此時
如果將WR改為0,將會導致最后一個字節(jié)出錯
nvywerwrq 07-18 23:22
做了幾個試驗,因為沒有示波器所以頭痛,只能通過程序試驗,有趣的是我設為連續(xù)發(fā)送比如3個后將WR設為0,這時只能發(fā)送成功2組,最后一個數(shù)據(jù)發(fā)不出去,如果設連續(xù)發(fā)送4組數(shù)據(jù),前面三個成功,最后一個也不成功,調用發(fā)送程序后我加了大概200mS的延時才讓RW=0,也不行。各位什么情況?我的發(fā)送子程序也看了沒什么問題,如果有問題,前面的2組也不會成功。
iwqudwnd 07-21 08:46
只要是發(fā)送后將RW=0,它前面的那組就發(fā)送不出去,我查了單片機內部的檢測位,如傳送字節(jié)狀態(tài):
0 字節(jié)沒有被傳送
1 寫到數(shù)據(jù)緩存寄存器的最后字節(jié)被傳送
這里我是等這個位等于1后又延時了50ms再拉低讀寫控制位也不行,而且加這個延時多少好象也沒有起到很大作用,各位大神,幫幫忙吧?我真的沒有辦法了。
撰寫答案
提 交
1 / 3
1 / 3
相關RS-485
關于RS485隔離防雷的信號地和大地的處理的疑問
關于RS485上拉電阻和下拉電阻阻值的問題
3.3V供電的RS485接口遠距離數(shù)據(jù)通信電路設計
四種RS485防雷保護接地電路
采用C8051F020的RS485串行通信電路設計