国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電子工程網(wǎng)

標題: 關(guān)于RS485通信數(shù)據(jù)丟失問題 [打印本頁]

作者: she1987    時間: 2011-9-9 16:09
標題: 關(guān)于RS485通信數(shù)據(jù)丟失問題

最近用STC12C5202AD芯片,實現(xiàn)主機與從機通信功能,用的是RS485協(xié)議,上面是RS485電路圖,現(xiàn)在的情況是只能收發(fā)一個數(shù)據(jù),無論主機發(fā)送多少個數(shù)據(jù),從機也只能收發(fā)一個數(shù)據(jù),調(diào)試了整天也沒有找到原因,下面是我編寫的程序:
#include
unsigned  char TEMP,a;
sbit RE = P1^2;      //接收允許開關(guān)
sbit DE = P1^1;      //發(fā)送允許開關(guān)
/**************************************
     延時程序
**************************************/
void delay(unsigned char i)
{
unsigned char j;
  for(i; i > 0; i--)
    for(j = 200; j > 0; j--);
}
void init()
{
  TMOD=0X20;      //設(shè)置定時器的工作方式為方式2,自動重裝8位數(shù)據(jù)
  TH1=0XFD;       //波特率9600的初始值
  TL1=0XFD; //波特率9600的初始值
  SCON=0X50; //設(shè)置串口的模式為方式1并置為REN使串口工作
  TR1=1;  //啟動定時器工作
  EA=1;  //開啟總中斷
  ES=1;  //開啟串口中斷  
  DE = 0;
  RE = 0;   //允許接收,禁止發(fā)送數(shù)據(jù)
}
void main()
{
  init();      //調(diào)用初始化子函數(shù)
  //delay(50);
  while(1)       //死循環(huán)
   {
     if(TEMP==1)     //判斷是否接收完數(shù)據(jù)
      {
       DE = 1;
      RE = 1;    //允許發(fā)送,禁止接收數(shù)據(jù)
      delay(50);
        EA=0;    //關(guān)閉串口中斷
        TEMP=0;    //變量TEMP清0
        SBUF = a;    //把a的值送到發(fā)送SBUF中去,注意此SBUF不同中斷函數(shù)里面的接收SBUF
        while(!TI) ;    //等待數(shù)據(jù)發(fā)送完畢
        TI = 0;  //發(fā)送完數(shù)據(jù)后清0
        delay(50);
        EA=1;  //開啟串口中斷
        DE = 0;
   RE = 0;   //允許接收,禁止發(fā)送數(shù)據(jù)
   delay(50);
      }
   }

}
void ser() interrupt   4
{
  RI=0;     //接收完數(shù)據(jù)后軟件清除中斷標志位
  a = SBUF;     //把他放進變量A中為了讀取返回
TEMP=1;     //置位TEMP
}

該程序如果去掉延時,用在RS232芯片上,通信一切正常,請各位高手幫我分析一下,是程序出現(xiàn)了問題,還是電路問題,謝謝大家!
作者: sherwin    時間: 2011-9-14 10:38
程序不懂,僅就硬件說兩句:
1、輸出端,A、B兩線之間,要并聯(lián)一個120歐姆的負載匹配電阻。必要時,最好再串接一個平衡濾波器。
2、供電腳(pin 8)最好能再并一個10uF的電解,以確保供電穩(wěn)定。
作者: zjx_embcom    時間: 2011-9-14 13:17
你這個程序?qū)崿F(xiàn)的功能是:從主機收一個數(shù)據(jù),再將該數(shù)據(jù)發(fā)送給主機。當(dāng)然無法連續(xù)的接收到主機上發(fā)送的數(shù)據(jù)的。因為你在發(fā)數(shù)據(jù)的時候,就沒有辦法接收數(shù)據(jù)。這個485是工作在半雙工的狀態(tài)。
作者: mutou868    時間: 2011-9-15 10:19
如果你是連續(xù)發(fā)送數(shù)據(jù),則串口一直產(chǎn)生中斷,無法執(zhí)行其他程序。
作者: c86518    時間: 2011-9-18 13:27
我也正遇到同樣的問題。四套STC11F04XE+MAX485CSE連接到一起。一個單片機發(fā)送,其他單片機接收。通過反復(fù)調(diào)試發(fā)現(xiàn),若連續(xù)發(fā)送4個字節(jié),只能接收到前兩個字節(jié)。若間隔1秒發(fā)送一個字節(jié),則都能收到。感覺到MAX485接收很慢。
作者: c86518    時間: 2011-9-18 13:28
如果哪位高手解決問題,請通知一聲c86518@163.com
網(wǎng)上相關(guān)485注意事項都看過了。
作者: liuanmuyu    時間: 2011-9-27 15:57
好好研究
作者: 暗之聲    時間: 2011-9-28 22:07
那個3腳一邊是DE,一邊是DO,不會是這里有問題吧,其他的我都看不懂.
作者: 暗之聲    時間: 2011-9-28 22:09
圖上3腳一個是DO,一個是DE
作者: 暗之聲    時間: 2011-9-28 22:13
那個3腳一邊是DE,一邊是DO,不會是這里有問題吧,其他的我都看不懂.
作者: sc88cs    時間: 2011-9-29 09:32
你這個程序這樣寫也是沒問題的。
只不過主機發(fā)送的程序要配合從機。
主機發(fā)了一個數(shù)據(jù),等從機收到并且返回了再發(fā)下一個就可以了。。。。。
你的程序有很多不好的地方,效率不高,盡量利用中斷來延時和中斷來發(fā)送數(shù)據(jù)就好點。。。。
作者: Zaxife    時間: 2011-10-8 18:05
1 485芯片A、B端沒接上下拉電阻,沒接中間電阻,會導(dǎo)致控芯片制信號邏輯不正確,兩個控制端短接為一個讀寫電平;
2 定義全局數(shù)組,每次串口接收中斷把數(shù)據(jù)堆入數(shù)組,主程序每次循環(huán)都檢測數(shù)組里面的數(shù)據(jù)有效性,數(shù)組超限自動出棧最先進來的數(shù)。如果數(shù)據(jù)有效則取數(shù)到臨時數(shù)組后標記全局數(shù)組為無效數(shù)據(jù)。
3 默認情況下主程序控制485芯片為接收狀態(tài)。當(dāng)需要發(fā)送數(shù)據(jù)時才控制485芯片為發(fā)送狀態(tài),狀態(tài)轉(zhuǎn)換時間可以累加變量來判斷,不要用延時子程序。while(!TI)也是用累加變量來判斷實現(xiàn)超時功能清TI,不要一直等待.....
建議去單片機仿真論壇看看吧http://proteus.5d6d.com
作者: richedy    時間: 2011-10-11 14:37
學(xué)習(xí)中
作者: Wilson2010888    時間: 2011-10-11 15:18
就硬件電路而言,我建議你改進一下,貼一個我量產(chǎn)過的485電路

作者: 笑梨    時間: 2014-3-13 09:09
Wilson2010888 發(fā)表于 2011-10-11 15:18
就硬件電路而言,我建議你改進一下,貼一個我量產(chǎn)過的485電路

我沒看懂,請教一下,這個圖是怎么工作的呢?
作者: deli333    時間: 2014-3-23 09:18
可能是主機發(fā)送的太頻繁,叢機沒有反應(yīng)過來主機的數(shù)據(jù)又來啦,叢機一直工作在中斷中自然數(shù)據(jù)發(fā)不回去
作者: deli333    時間: 2014-3-23 09:19
距離短的話你的電路沒甚問題
作者: pcbkey    時間: 2015-2-22 14:30
支持一下
作者: lucent    時間: 2015-5-26 11:25
呵呵。簡單。下載一份485規(guī)格書就可以的了。
作者: sgj511285515    時間: 2015-6-10 22:03
我給你提一個意見,硬件沒啥問題,看到有人說加匹配電阻,其實線很短,不加也沒事,你有兩個延時函數(shù),如果程序正在執(zhí)行第一個延時函數(shù),如果我給你串口發(fā)數(shù)據(jù)了,但是你還沒有拉低485接受信號線,也就是收不到,你不覺得邏輯有問題嗎?




歡迎光臨 電子工程網(wǎng) (http://m.qingdxww.cn/) Powered by Discuz! X3.4
主站蜘蛛池模板: 亚洲欧美香蕉在线日韩精选 | 国产精品福利久久2020 | 日日噜噜夜夜狠狠视频无 | 草逼综合 | 91精品福利麻豆专区 | 色多多幸福宝 | 在线观看亚洲人成网站 | 青青99 | 国产香蕉尹人视频在线香蕉视 | 国内一卡2卡三卡四卡在线 国内一级一级毛片a免费 | 久久免费精品 | 欧美xx在线观看 | 亚洲精品 欧美 | 国产性大片黄在线观看在线放 | 在线观看91精品国产剧情免费 | 日本不卡二卡三卡四卡无卡免费 | 亚洲综合五月天婷 | 国产精品免费看久久久 | 亚洲天堂在线播放 | 成人啪精品视频免费网站 | 欧美一区二区三区视频在线 | 四虎影视在线 | 免费看欧美日韩一区二区三区 | 麻豆导航 | 成年人免费黄色 | 黄在线观看在线播放720p | 日本欧美韩国一区二区三区 | 91久久精一区二区三区大全 | 五月婷在线视频 | 久久综合九九 | 4虎影院最近地址 | 青青艹在线 | 羞羞网站免费 | 在线免费一区二区 | 久久久久久久久久免费视频 | 日本视频免费观看 | 免费视频久久久 | 香蕉伊思人在线精品 | 天天操天天干天天做 | 欧美一区二区三区大片 | 国产伦精品一区二区三区免费 |