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

標(biāo)題: 89C52單片機(jī)modbus-RTU協(xié)議的從機(jī)程序,無法寫入線圈!找不到問題 [打印本頁]

作者: 291069947    時(shí)間: 2019-7-16 17:34
標(biāo)題: 89C52單片機(jī)modbus-RTU協(xié)議的從機(jī)程序,無法寫入線圈!找不到問題
程序與上位機(jī)通訊能夠?qū)崿F(xiàn),我用串口調(diào)試助手發(fā)送 01 05 00 00 00 00 CD CA(站號(hào)01,功能碼05(寫單個(gè)位狀態(tài)),地址:0000,狀態(tài)0,校驗(yàn)碼),單片機(jī)從機(jī)回復(fù)01 05 00 00 00 00 CD CA,經(jīng)測(cè)試,通訊沒問題!
再發(fā)送 01 01 01 00 00 00 08 3D C6(站號(hào)01,功能碼01(讀位狀態(tài)),起始地址:0000,寄存器個(gè)數(shù):8,校驗(yàn)碼)
單片機(jī)回復(fù) 01 01 01 00 51 88 由此可見位寄存器0----8為0000 0000,并沒有被改變。。。

以下為我的單片機(jī)定時(shí)器T0中斷服務(wù)程序:

  1. /*T0中斷服務(wù)程序*/

  2. void comm_stop() interrupt 1
  3. {   
  4.           u8 i;
  5.           TH0=(65536-11111)/256;  //重裝T0
  6.     TL0=(65536-11111)%256;  //T0低位

  7.           if(Reciver_bit&&comm_END!=0)          //確認(rèn)等待3.5個(gè)字節(jié)時(shí)間8ms && 接收位為1
  8.     comm_END--;
  9.           if(comm_END==0)
  10.                 {
  11.                          Reciver_bit=0;                     //幀接收,對(duì)標(biāo)志位清零
  12.                          if(rece_index>=8)                  //確認(rèn)接收數(shù)據(jù)長(zhǎng)度大于等于8
  13.                         
  14.                                  AnalyzeRecieve();
  15.                                  send_comm();
  16. led0=Bit[0];               
  17. led1=Bit[1];
  18. led2=Bit[2];
  19. led3=Bit[3];
  20. led4=Bit[4];
  21. led5=Bit[5];
  22. led6=Bit[6];
  23. led7=Bit[7];
  24.                                 
  25.                         
  26.                         
  27.              rece_index=0;                      //數(shù)據(jù)長(zhǎng)度標(biāo)識(shí)位清0
  28.                    comm_END=8;                        //重新賦延時(shí)初值
  29.        for(i=0;i<16;i++)                  //清空接收數(shù)組
  30.        receBuf[i]=0;
  31.         receiveData=0;                     //接收中間變量賦初值[/i]
  32. }
  33. }
復(fù)制代碼

經(jīng)過測(cè)試發(fā)現(xiàn),程序運(yùn)行到 AnalyzeRecieve();時(shí),對(duì)Bit[0]=1的操作成功,運(yùn)行下一步時(shí),就好像操作被撤銷了一樣。
我在開發(fā)板上定義了LED0~LED7分別對(duì)應(yīng)Bit[0]~Bit[7]來監(jiān)控位狀態(tài)
神奇的是,運(yùn)行一次T0中斷程序,所有LED就都閃一下,修改Bit[]也不成功。
本人知識(shí)有限,對(duì)這疑難雜陳無計(jì)可施。。。
附件包含源程序和現(xiàn)象視頻

狀態(tài)查詢.PNG (8.35 KB, 下載次數(shù): 56)

狀態(tài)查詢.PNG

MODBUS_RTU_SLAVER.rar

2.57 MB, 下載次數(shù): 44


作者: 291069947    時(shí)間: 2019-7-16 20:15
經(jīng)測(cè)試   是send_comm函數(shù)有問題   但是send_comm的功能是正常的呀     為什么會(huì)影響到其他數(shù)組
作者: molo    時(shí)間: 2019-8-5 15:23
能把解決后的代碼發(fā)一下嗎?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91影院在线观看 | 国产激情91久久精品导航 | 在线中文字幕亚洲 | 国产福利在线小视频 | 国产一区二 | 亚洲一区在线观看视频 | 久久久免费 | 欧美黑人一级爽快片淫片高清 | 久久久91精品国产一区二区三区 | 日本精品网站 | 亚洲午夜精品一区二区三区 | 亚洲黄色一级 | 中文字幕日韩av | 亚洲精品久久久久国产 | 国产精品夜色一区二区三区 | 国产精品1 | 一区二区精品视频 | 91精品久久久久久久久 | 国产不卡一区 | 亚洲免费在线 | 精品国产一区二区三区久久 | 免费在线观看黄色av | 午夜精品久久久 | 欧美日韩精品中文字幕 | 国产精品视频一二三区 | 国产美女在线观看 | 99re超碰| 亚洲成人一级 | 久久久蜜桃一区二区人 | 网络毛片 | 日韩视频免费 | 日韩电影免费观看中文字幕 | 美女视频一区二区三区 | 日本小视频网站 | а天堂中文最新一区二区三区 | 狠狠综合久久av一区二区老牛 | 色婷婷av久久久久久久 | 国产不卡视频 | 免费激情| 国产在线精品一区二区 | 午夜精品一区二区三区免费视频 |