首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

单片机一对多串口通讯的有关问题

2012-02-09 
单片机一对多串口通讯的问题现在用RS232进行一对多串口通讯的测试,我使用的是9位可变Mode 3方式通讯,波特

单片机一对多串口通讯的问题
现在用RS232进行一对多串口通讯的测试,我使用的是9位可变Mode 3方式通讯,波特率都是9600,服务器端的SM2为零,两台客户端的SM2一开始就置1。服务器的TX与两台客户端的RX连接,服务器的RX与两台客户端的TX连接。

  现在这样现象,两台客户机可以分别收到自己地址信号后作出反应,但就是不能将数据发送回服务器端。但当断开其中一台客户机的TX线通讯正常,服务器端可以收到客户机的数据。但当再接上TX通讯线时,就不能收到数据。

  我尝试将另一台客户端设置为只收地址,SM2一直为1,不作任何发送排除干扰,但服务器端还是收不到客户机的数据。我尝试用电脑作为主服务端发送数据,也收不到客户机发回的数据信息。

  我用的CPU为服务器端STC 12LE5A60S2(3.3V, 尝试更换为STC89C52RC还是一样的问题)、客户端分别是STC89C52RC、STC89C16RD+

  不知这是什么原因,请问各位有没试过这种现象。


[解决办法]
两根TX线并在一起,产生一个线与的结果,这样是不被允许的,只有OC门,或者高阻端口才能这样接

如果非要一根总线你可以尝试改变方案,用RS485(半双工)或者RS422(全双工)

或者电路变通一下,用两个4148
[解决办法]
如果你使用1片MAX232(有2路),可以用一个与门,在MAX232和主CPU之间,将各2个下位机来的发送信号与在一起后,再转给主机的RXD
[解决办法]
用rs485吧,这样可以实现主从式多级通讯
[解决办法]
我建议不用UART自带的主从方式什么的

只用最通用的串口属性,其它的在软件协议里处理
[解决办法]
1、两个TX是不能直接接一起,如果一个高一个低电平输出相当于短路,容易坏掉的,可以用楼上说的方法,用一个与门隔开。
2、两个TX不能同时回复数据,会冲突,上位机识别的是个乱码。
3、你可以对两个下位机编号,一个00,一个01,第一个数据发送编号,下位机接收到后判断是不是给自己的,如果是回复上位机,不是不回复,这样就不冲突了。

热点排行