找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1763|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)+RS485連接4個(gè)從機(jī),必須同時(shí)連接四個(gè)才能工作,主機(jī)的EA和ES都是關(guān)閉狀態(tài)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:931206 發(fā)表于 2022-5-6 13:38 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
    while (1)
    {



        delay_1ms(5);
        SEND_data(0x01);    //獲取主機(jī)一的數(shù)據(jù)
        delay_1ms(5);
        DISplay_RT_1();              //顯示獲取的數(shù)據(jù)


        delay_1ms(5);
        SEND_data(0x02);    //獲取主機(jī)二的數(shù)據(jù)
        delay_1ms(5);
        DISplay_RT_2();              //顯示獲取的數(shù)據(jù)
//
//
        delay_1ms(5);
        SEND_data(0x03);    //獲取主機(jī)三的數(shù)據(jù)
        delay_1ms(5);
        DISplay_RT_3();              //顯示獲取的數(shù)據(jù)


        delay_1ms(5);
        SEND_data(0x04);    //獲取主機(jī)四的數(shù)據(jù)
        delay_1ms(5);
        DISplay_RT_4();              //顯示獲取的數(shù)據(jù)

    }


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2022-5-7 00:49 | 只看該作者
多半是沒有上下拉導(dǎo)致空閑時(shí)總線狀態(tài)不確定導(dǎo)致的。用示波器看過波形了嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:94031 發(fā)表于 2022-5-7 10:35 | 只看該作者
程序編制應(yīng)加上,任何一路長(zhǎng)時(shí)間沒應(yīng)答信號(hào),應(yīng)跳過進(jìn)行下一路操作,否則會(huì)死在沒連接那路。
回復(fù)

使用道具 舉報(bào)

地板
ID:883242 發(fā)表于 2022-5-7 10:49 | 只看該作者
xuyaqi 發(fā)表于 2022-5-7 10:35
程序編制應(yīng)加上,任何一路長(zhǎng)時(shí)間沒應(yīng)答信號(hào),應(yīng)跳過進(jìn)行下一路操作,否則會(huì)死在沒連接那路。

EA、ES都關(guān)閉了,那就只能是查詢式,死在沒應(yīng)答信號(hào)的可能性基本沒有。
回復(fù)

使用道具 舉報(bào)

5#
ID:931206 發(fā)表于 2022-5-9 13:25 | 只看該作者
Hephaestus 發(fā)表于 2022-5-7 00:49
多半是沒有上下拉導(dǎo)致空閑時(shí)總線狀態(tài)不確定導(dǎo)致的。用示波器看過波形了嗎?

有上下拉電阻,用proteus仿真也是必須四個(gè)同時(shí)在線才能正常工作
回復(fù)

使用道具 舉報(bào)

6#
ID:931206 發(fā)表于 2022-5-9 13:38 | 只看該作者
Hephaestus 發(fā)表于 2022-5-7 10:49
EA、ES都關(guān)閉了,那就只能是查詢式,死在沒應(yīng)答信號(hào)的可能性基本沒有。

那該怎么改呢,我不知道它是卡在那個(gè)地方,是卡在讀不到下位機(jī)傳輸?shù)臄?shù)據(jù)上還是卡在將數(shù)據(jù)顯示在顯示屏上
回復(fù)

使用道具 舉報(bào)

7#
ID:931206 發(fā)表于 2022-5-9 13:48 | 只看該作者
xuyaqi 發(fā)表于 2022-5-7 10:35
程序編制應(yīng)加上,任何一路長(zhǎng)時(shí)間沒應(yīng)答信號(hào),應(yīng)跳過進(jìn)行下一路操作,否則會(huì)死在沒連接那路。

對(duì),我想了一下就是發(fā)送地址讀數(shù)據(jù)超時(shí)然后就一直死在那個(gè)程序了,這是我讀數(shù)據(jù)程序,該怎么解決呢?
  1. unsigned char SEND_data(unsigned char addr)
  2. {
  3.     unsigned char i = 0;

  4.     Rs485_die = 1;
  5.     TB8 = 1;
  6.     TI = 0;
  7.     SBUF = addr;
  8.     while (!TI);
  9.     TI = 0;

  10.     Rs485_die = 0;
  11.     for (i = 0; i < 4; i++)
  12.     {
  13.         RI = 0;
  14.         while (!RI);
  15.         RH_TP[i] [i]= SBUF;
  16.         RI = 0;

  17.     }



  18.     Rs485_die = 1;
  19. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

8#
ID:94031 發(fā)表于 2022-5-9 16:09 | 只看該作者
kill2007 發(fā)表于 2022-5-9 13:48
對(duì),我想了一下就是發(fā)送地址讀數(shù)據(jù)超時(shí)然后就一直死在那個(gè)程序了,這是我讀數(shù)據(jù)程序,該怎么解決呢?

for (i = 0; i < 4; i++)
{
        unsigned int m;
       
        RI = 0;
        m=0;
        while(!RI)
        {
         m=m+1;
         if(m>10000){i=5;break;}
        }
        RH_TP = SBUF;
        RI = 0;
}
回復(fù)

使用道具 舉報(bào)

9#
ID:931206 發(fā)表于 2022-5-10 22:57 | 只看該作者
xuyaqi 發(fā)表于 2022-5-9 16:09
for (i = 0; i < 4; i++)
{
        unsigned int m;

okok,非常感謝大佬
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表