一、实现原理1.1、主机向从机读数据,并接收从机数据更改自己寄存器的数据
1.1.1、程序设计void Modbud_fun3(void)
{
unsigned int Regadd=0,i=0,j,Reglen;
Reglen=modbus.rcbuf[2]; //得到读取的寄存器的数量
for(i=0;i<Reglen;i++) //处理读取的数据保存到主机相应寄存器
{ //数据从寄存器的第一个保存到指定数量
Reg[Regadd]=modbus.rcbuf[3+i]*256; //将数据高位保存寄存器
Usart_SendByte( DEBUG1_USART,Reg[Regadd]/256); //发送到另一个串口显示
i++; //数据增加,处理低位
Reg[Regadd]=Reg[Regadd]+modbus.rcbuf[i+3]; //发送到另一个串口显示
Usart_SendByte( DEBUG1_USART,Reg[Regadd]%256); //将数据低位保存寄存器
Regadd++; //处理完高位和低位数据,进行下一个数据
}
}
|