我移植的freemodbus为什么一直收不到数据
发布网友
发布时间:2022-04-09 06:18
我来回答
共2个回答
热心网友
时间:2022-04-09 07:48
问题:
同读2站能232总线挂2站相互影响使数据错误
同读2站232并起行要改站站号
问题二:知何调试主机
先连接站先让主机按照MOBUS协议串数据串口数发送调试精灵看数据按照MODBUS协议主机虚拟站发数据(或调试精灵虚拟发主机)看主机解析否
错误请指
热心网友
时间:2022-04-09 09:06
freemodbus通过串口中断的方式接收和发送数据。采用这种做法我想可以节省程序等待的时间,并且也短充分使用CPU的资源。
串口中断接收毋庸置疑,在中断服务函数中把数据保存在数组中,以便稍后处理。但是串口发送中断使用哪种形式?串口发送中断至少有两种方式,
第一种,数据寄存器空中断,只要数据寄存器为空并且中断屏蔽位置位,那么中断就会发生;
第二种,发送完成中断,若数据寄存器的数据发送完成并且中断屏蔽位置位,那么中断也会发送。我非常建议各位使用串口发送完成中断。
freemodbus多使用RS485通信中,从机要么接收要么发送,多数情况下从机处于接收状态,要有数据发送时才进入发送状态。进入发送状态时,数据被一个一个字节发送出去,当最后一个字节被发送出去之后,从机再次进入接收状态。如果使用发送寄存器为空中断,还需要使用其他的方法才可以判断最后一个字节的数据是否发送完成。如果使用数据寄存器为空中断,那么将很有可能丢失最后一个字节。转载,仅供参考。