ww8166 发表于 2007-8-20 15:42:53

PC机RS232转422后,全双工与两个ATmega64L(单片机侧使用MAX3081作为485通讯芯片)多机通

我使用两个单片机ATmega64L接口通过芯片MAX3081转换成RS422四线全双工后与PC机通讯,两个通讯输出T+、T-、R+、R-采用并联方式连接,PC机下传要求两个单片机上传数据的通讯协议不同,总有一个无法上传数据,也就是PC机接收不到其中一个单片机上传的数据,另外一路是正确的,不知道其中的原因。如果在两个接收端接上120欧姆的匹配电阻,可以收到,但是两个单片机所发送的字节数和上传数据都是错误的。请知道原因的前辈给予答复!并告知改正的方法,谢谢!

icecool 发表于 2007-8-20 20:46:41

是不是波特率错误?

ww8166 发表于 2007-8-23 08:55:09

波特率没有错误,使用的是9600,也不是很高。

machao 发表于 2007-8-23 22:50:46

这不是几句话能说明的,这是多机通信的系统,“要求两个单片机上传数据的通讯协议不同”我根本看不明白这是什么意思。



我的新书大约在10月出版,上面有多机通信的例子。

ww8166 发表于 2007-8-27 09:04:05

马潮老师:

我的意思是这样的:PC机的通讯协议包括了单片机的号码(通过拨码开关设置),PC机下传多个字节的数据,这其中包括单片机的号码,所有的单片机都进行所有字节的接收,然后单片机判断是否是PC机下传给自己的,如果是则回传数据字节,如果不是,则放弃数据更新,不做任何数据的上传动作,直到PC机下传数据字节中单片机号码与自己一致为止才有上传动作。

等待您的回复。

machao 发表于 2007-8-29 18:46:12

你已经很明白了,下位机接收PC的所有命令,判断是否是给自己的,是就回答,不是就不回答。



详细的参考只能等我的书出来后了。
页: [1]
查看完整版本: PC机RS232转422后,全双工与两个ATmega64L(单片机侧使用MAX3081作为485通讯芯片)多机通