基本信息
源码名称:modbus通信(485主机)
源码大小:0.32M
文件格式:.rar
开发语言:C/C++
更新时间:2021-07-28
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
实验X02 MODBUS - 485主机.rar

oid MB_RSP_01_02(void)
{
  uint16_t i;
  if((Addr RegNum)<1025)
  {
    Tx_Buf[0]=Rx_Buf[0];     //本机地址
    Tx_Buf[1]=Rx_Buf[1];     //功能码
    ByteNum=RegNum/8;        //字节数
    if(RegNum%8)ByteNum =1;  //如果位数还有余数,则字节数 1
    Tx_Buf[2]=ByteNum;       //返回的字数
    for(i=0;i<RegNum;i )
    {
      if(i%8==0)Tx_Buf[3 i/8]=0x00;
      Tx_Buf[3 i/8]>>=1;      //低位先发送
      Tx_Buf[3 i/8]|=((r[Addr i])<<7);//寄存器名称
      if(i==RegNum-1)         //发送最后一位
      {
        //如果最后一个字节还有余数,则剩余MSB填充0
        if(RegNum%8)Tx_Buf[3 i/8]>>=8-(RegNum%8);
      }
    }
    calCRC = MB_CRC16((uint8_t*)&Tx_Buf,ByteNum 3); //CRC效验
    Tx_Buf[ByteNum 3]=calCRC;
    Tx_Buf[ByteNum 4]=calCRC>>8;
    UART_Tx((uint8_t*)Tx_Buf, ByteNum 5);
  }
  else
  {
    MB_Exception_RSP(Rx_Buf[1],0x02);     //地址错误回应
  }
}