发布网友 发布时间:2022-04-25 09:58
共2个回答
热心网友 时间:2023-12-01 22:33
主机以一定的时间间隔发送询问数据包,在数据包中以一定的数据格式(通信协议)填写,通常包括:起始字符,从机地址,数据,校验字节,结束符等。 各从机处于接收状态,主机发送询问数据包后,立即转换为接收状态,各从机同时接受到主机发来的数据,分析数据包中地址是否与自己地址相同,若不同,则不予应答,仍处于接受状态,若相同,则从机发出应答数据包,(在应答数据包中,同样包含从机地址信息),主机收到应答后,根据地址信息知道这是那个从机发来的数据,处理数据后,主机再询问其它地址的从机,从机则一一应答,从机从主机发来的询问信息中得到主机给它的数据,如此,便实现了多机双向通信。追问我现在做一主机 两从机 相互传一些简单的数据,不想用起始字符校,校验字节,结束符等。也就是说数据出点错也没问题,串口工作在方式1,能实现么,具体怎么做?追答定时器中断,比如1秒定时, 时间到后,主机询问,某从机回答,再过一秒后,主机再询问,从机再回答,如此周而复始,为什么不能形成循环呢?
主机询问→1号从机回答→主机询问→2号从机回答→主机询问→1号从机回答→主机询问→2号从机回答。。。。 周而复始。
主机要不停的询问!每次询问要变换从机地址, 简单的,就按定时方式做吧。定时时间要足够长, 不要还没等接受从机应答就又发送了就行,485是半双工的。
来自:求助得到的回答
热心网友 时间:2023-12-01 22:33
建议 去 我的领地 5d6d 的 proteus 论坛看看