久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2093|回復: 13
打印 上一主題 下一主題
收起左側

51單片機多機通信,主機如何統計出從機的數量?

[復制鏈接]
跳轉到指定樓層
樓主
ID:207051 發表于 2021-10-1 21:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我想做一個多機通信,一主機,1-225個從機,主機向從機發送地址碼,從機收到,并回傳給主機,主機收到如何統計出來有多少個從機在線?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:88256 發表于 2021-10-1 22:37 | 只看該作者
從機一開機就一直向主機發送請求,主機響應后按順序分配從機地址(可參考I2C總線的仲裁機制);從機離線之前必須向主機發送離線信號,以便回收地址繼續利用;如果擔心從機突然斷電浪費地址,主機可在比較空閑時或者定時發送特殊的響應信號,對于3次沒有從機響應的地址加入待分配地址參與分配。
回復

使用道具 舉報

板凳
ID:624769 發表于 2021-10-1 23:08 | 只看該作者
做一個變量,有回復就是在線 +1 沒回復就是不在線 不加,最后看變量變成幾。
回復

使用道具 舉報

地板
ID:420836 發表于 2021-10-3 08:57 | 只看該作者
根據從設備的通信確認,主設備可以將連接的設備總數加1。
回復

使用道具 舉報

5#
ID:637144 發表于 2021-10-4 15:53 來自手機 | 只看該作者
一般上線都會給主機發個信號
回復

使用道具 舉報

6#
ID:883242 發表于 2021-10-4 16:02 | 只看該作者
發心跳,沒回復就算掉線。問題是你不知道n號站對應哪個從機真的能用嗎?
回復

使用道具 舉報

7#
ID:819053 發表于 2022-4-1 15:33 | 只看該作者
188610329 發表于 2021-10-1 23:08
做一個變量,有回復就是在線 +1 沒回復就是不在線 不加,最后看變量變成幾。

就是這樣做的,說時統計不準,時多時少
回復

使用道具 舉報

8#
ID:819053 發表于 2022-4-1 15:37 | 只看該作者
Hephaestus 發表于 2021-10-4 16:02
發心跳,沒回復就算掉線。問題是你不知道n號站對應哪個從機真的能用嗎?

我從機有編號,從機收到就返回一個數,主機變量+1,一個周期變量清0
回復

使用道具 舉報

9#
ID:883242 發表于 2022-4-1 17:56 | 只看該作者
lisanfang 發表于 2022-4-1 15:37
我從機有編號,從機收到就返回一個數,主機變量+1,一個周期變量清0

那么是問題已經解決了,還是你還有什么別的問題?
回復

使用道具 舉報

10#
ID:264021 發表于 2022-4-1 18:49 | 只看該作者
把每個從機設置一個名字,每次和主機交換數據時先發送名字,后發送數據,從機收到自己的名字時就收主機的數據進行交換
回復

使用道具 舉報

11#
ID:207051 發表于 2022-4-22 22:22 | 只看該作者
188610329 發表于 2021-10-1 23:08
做一個變量,有回復就是在線 +1 沒回復就是不在線 不加,最后看變量變成幾。

我就是這種方法,統計不準,明明有時12個在線,顯示11個   
回復

使用道具 舉報

12#
ID:207051 發表于 2022-4-22 22:26 | 只看該作者
Hephaestus 發表于 2022-4-1 17:56
那么是問題已經解決了,還是你還有什么別的問題?

至今還在摸索,有時計不準不知道是什么原因,串口有時也死機了   
回復

使用道具 舉報

13#
ID:207051 發表于 2022-4-22 22:46 | 只看該作者

void ZOHJI_NUM()   //============================發從機代碼=0-255==========
{       
        static uchar  TX_ZHONGJI_COUT=0;//發送從機的編碼
               uchar  SLAVE_COUT=0;//從機從計數//

                 //===接收到的數據等于發射的數據
             if(ZHONGJI_Dat==TX_ZHONGJI_COUT)
                   {
           ERR_SALVE_TIM=0;                //沒收到開始計時          
           TX_ZHONGJI_COUT++;        //發送從機號,0-255XTD!
           SLAVE_COUT++;                //從機返回來編號0-255XDNX!收到也開始計數
                   Slave_PCS++;    //開始統計從機數量
                   }
                  
                 if(ZHONGJI_Dat!=TX_ZHONGJI_COUT)
                  
                    {
                  
                      TX_ZHONGJI_COUT;         //發從機號出去,從機沒有收到,重發不變的代碼TX_ZHONGJI_COUT
                      SLAVE_COUT;            //從機沒有收到,重發不計數
                               
                      ERR_SALVE_TIM++;  //從機未收到超時計時
                  
                    }

                         if(ERR_SALVE_TIM==4)
                             {                                         
                              TX_ZHONGJI_COUT++;         //發從機號出去,3次從機沒有到,發下一個從機代碼
                                  SLAVE_COUT++;         //統計從機數量加一次。保持跟發送的代碼同步
                             }
                                                  
                                 if(ERR_SALVE_TIM==7)   //如果3次從機也沒有收到就結束
                             {
                              ERR_SALVE_TIM=0;                                         
                              TX_ZHONGJI_COUT=1;         //如果還沒有從機返回來重新開始,表一輪結束//從1開始發
                                 
                                   SLAVE_COUT=0; //從機計數清0
                  ZHONGJI_PCS_A=Slave_PCS;//把計數發送到遙控器上顯示
                  Slave_PCS=0;        //從機總計數清0                       
                         
                             }
                  
          TX_ZHONGJI_NUM[0]=TX_ZHONGJI_COUT/100+0x30;
      TX_ZHONGJI_NUM[1]=TX_ZHONGJI_COUT%100/10+0x30;
          TX_ZHONGJI_NUM[2]=TX_ZHONGJI_COUT%100%10+0x30;
          TX_ZHONGJI_NUM[3]='X';
      TX_ZHONGJI_NUM[4]='T';
          TX_ZHONGJI_NUM[5]='D';
          TX_ZHONGJI_NUM[6]='!';                 
                                 
        SendString(TX_ZHONGJI_NUM);//發代碼1-255個數          
                                 
  memset(S_tab,0,sizeof(S_tab));        
                  
}       
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色av免费网站 | 欧美性另类 | 久久视频免费看 | 九九热在线观看视频 | 国产美女一区二区 | 99色在线 | 久久久新视频 | 日本欧美黄色片 | 欧美成人一区二区 | 一区二区在线看 | 国产永久免费 | 久久精品视频免费看 | 成人h动漫亚洲一区二区 | 欧美1页| 国产精品视频久久 | 午夜精品久久久久久久 | 97精品国产| 国产精品久久久久久久久久免费看 | 亚洲午夜精品 | 国产成人在线免费 | 欧美久久久久久 | av色在线 | 精久久久 | a在线观看 | 久久久久久久一区 | 国产精品视频999 | 人人干人人超 | 91麻豆精品国产91久久久更新资源速度超快 | 99在线免费视频 | 国产精品乱码一区二区三区 | 最新日韩av| 久久91av| 一级片免费网站 | 日韩在线观看网站 | 成人高清在线 | 久热精品在线 | 国产精品视频一 | 成人av免费在线观看 | 成人综合视频在线 | 中文字幕视频网 | 中文字幕第一页在线 |