好吧,一般不给新来的回答。因为新来的问完问题,就没下文了。
modbus RTU是主从方式。单片机数据有多少?想采用何种方式发送?
一般的方式是,MCGS为主(上位),向单片机(下位)查询,单片机接受查询后,回应。
上位查询帧可以用: aa 03 xx xx cc cc crc。也就是上位机的取得hold reg的命令,这个命令是MCGS里定义好了后自动发出的,其实你不用管。其中:aa是下位机标识,03是取得400xx的字寄存变量,xx xx是寄存器开始,cc cc是寄存器(字)数量,crc是校验。
如果是一个下位机,简单传几个数的话,你可以用单片机收到上述的查询帧后,回应数据就行了。回应帧是:aa 03 Bc dh dl 。。。 dh dl CRC。aa就是上面的标识,Bc是你回应的数据的字节为单位的数量,dh,dl是你要传的数一个字的高低字节。CRC是校验。比较麻烦的是CRC,如果上位不关心CRC的话,你填00 00就可以。
参考:
http://www.modbus.com/