发表于:2004-03-23 18:32:00
楼主
我现在用rs485做一个系统,主要是再pc上通过转接头来把rs232转成了485,然后与单片机的RS485接口(用max485芯片)相连。每个单片机采集各自的数据等待PC机的呼叫。
主机(PC机)呼叫的是从机的地址,下位机(单片机)查询到是自己的地址码后回送数据。
1.单片设为1#号机一对一(pc对一台单片机)没有问题,主机发地址,从机能返回对应数据,一切正常。
2.但是如果再接上另一个号单片机,则主机(pc机)发下位机地址时,只有供电电源较高的那个单片机回应。比如1#机的供电电源是5.4V,而2#机的供电电源是5.2V,则只有1#机相应,而2#机无论如何都没反映但是2#机的RXD脚是有动静的。按道理这跟供电电压没什么关系亚?!但是这个时候没有反映.再发1#号机地址(供电电压高的机子),1#号机子又响应.就好像1#和2#机来了个竞争,谁电压高谁反映.
我在单片机程序中每次接受后都有清ri,并如查得是本机号码都CLR SM2,发送数据后,两台机子的rs485都是处于接受态,SM2都置1.按道理不应该有这种现象.两台单片机程序一样.
且半双工的方向控制确定没有错且都及时调整了,不然一对一发送也不会成功了.
实在不明白为什么会这样,把很多因数都考虑了 ,很茫然现在.
希望大家给点建议.
我的email:
danasun@sohu.com
qq:9216289
希望大家帮帮我,快郁闷死了.谢谢