用max485 51单片机多机通信问题

2024-11-25 08:01:36
推荐回答(3个)
回答1:

多机通信,不一定画上 MAX485,直接连接,就可以实验程序了。

前面初始化,已经是 SM2=1,只能收到 TB8=1 的数据。
所以,程序中,并不需要再判断 RB8 是否为一。

;-------------------
if (RI) {
RI = 0;
a = SBUF;
if(a == 0x01) { // (2好从机为02)
SM2 = 0;
delay(10);
P35 = 1; //fasong
SBUF = 0x12;
while(!TI); //--楼主这里漏掉了分号
TI = 0;
P35 = 0;
SM2 = 1; //继续设置为仅收取 TB8=1 的状态
}
}

参考:

http://hi.baidu.com/do_sermon/item/46b7c92b103d24cea4275a77

回答2:

485多机通信,其实用方式1更方便,不需用方式3.
从机需要确定一个地址,主机通过地址区分不同从机。

另发送需要控制485的方向。

回答3:

你的程序有点复杂化了吧