发表于:2003-12-22 20:00:00
楼主
最近用rs485做一个系统,现在进行的是测试系统,主要是再pc上通过转接头来把rs232转成了485,然后再用这个485来驱动几个单片机,每个单片机采集各自的数据发回来.
现在我们是用75184的半双工的芯片来做.
我们采用的是主发从受的功能.就是说如果主机呼叫的是从机的地址,从机采回送信号应答主机.
从机地址是用波盘开关,用p2口来查询读入.
现在的问题是单片设为1#号机一对一(pc对一台单片机)没有问题,主机发完同步头再发地址,从机能返回对应的地址和数据,非常正常,但是如果再接上一个2#号单片机,则主机(pc机)发1#机地址,则!#机响应,再发2#机地址,按道理应该2#机响应,但是这个时候没有反映.再发1#号机地址,1#号机子又响应.就好像1#和2#机来了个竞争,开始发了谁,后来发这机就能再响应,而发别的就不可以.
我在单片机程序中每次接受后都有清ri,侧过一个发送回传结束后,两台机子的rs485都是处于接受态.按道理不应该有这种现象.两台单片机程序一样.每次发送结束都有用jbc语句判断并清ti.
且半双工的方向控制确定没有错且都及时调整了,不然一对一发送也不会成功了.
实在不明白为什么会这样,把很多因数都考虑了 ,很茫然现在.
希望大家给点建议.
(1#机或2#号机是相对说的,就是说如果先发了2#机那么1#也会出现和上面说的2#机那样的状况,就是不响应对它的地址操作.)
我的email:
systemview@sina.com.cn
qq:3519425.
希望大家帮帮我,快郁闷死了.谢谢