3、如图:我们的USB转485模块虚拟出的是COM5,波特率9600,无校验位,数据位是8位,1位停止位,设备地址假设为1。(1)、写寄存器的时候,如果我们要把01写到一个地址是0000的寄存器地记醋弭床址里,点一下“写入”,就会出现发送指令:01 06 00 00 00 01 48 0A。(2)、我们来分析一下这帧数据,其中01是设备地址,06是功能码,代表写寄存器这个功能,后边跟00 00表示的是要写入的寄存器的地址,00 01就是要写入的数据,48 0A就是CRC校验码,这是软件自动算出来了。(3)、而根据Modbus协议,当写寄存器的时候,从机成功完成该指令的操作后,会把主机发送的指令直接返回,我们的调试精灵会接收到这样一帧数据:01 06 00 00 00 01 48 0A。2、03功能码假如我们现在要从寄存器地址0002开始读取寄存器,并且读取的数量是2个。如上图(1)、点一下“读出”,就会出现发送指令:01 03 00 02 00 02 65 CB。(2)、其中01是设备地址,03是功能码,代表写寄存器这个功能,00 02就是读寄存器的起始地址,后一个00 02就是要读取2个寄存器的数值,65 CB就是CRC校验。(3)、而接收到的数据是:01 03 04 00 00 00 00 FA 33。其中01是设备地址,03是功能码,04代表的是后边读到的数据字节数是4个,00 00 00 00分别是地址为00 02和00 03的寄存器内部的数据,而FA 33就是CRC校验了。