485主从机通信问题

[复制链接]
 楼主| taijing33 发表于 2011-10-15 09:41 | 显示全部楼层 |阅读模式
小弟第一次些通信程序。
我的测试目的是:主机发送1给从机,从机接收到1后,给主机发送AD值。主机显示在LED上。主机使用定时器0中断动态显示动态led。问题是:他们不能通讯。
但是如果从机无条件主机发数据。主机接受显示就可以。
主机程序部分:
while(1)
         {                                Delay1ms(10);        //z主机等待时间,。等待从机处在接受状态
                       EN=0;                   //使能发送。发送数据1到从机
                           Delay1ms(10);
                           SBUF=0X01;
                           while(TI==0);
                           TI=0;
                           Delay1ms(10);
                           EN=1;           //接受
                           Delay1ms(10);
                           while(RI==0);
                           addr1=SBUF;
                           RI=0;  
                       LED_show(addr1,11);//显示
                          
                           }                 
                    }
从机程序部分:
while(1)
   {            
                 delay(10);       
                   EN=0;           //使能接受
             delay(10);
                  while(RI==0);
                  temp=SBUF;
          RI=0;

        if(temp==1)                   //判断接受的是不是1.如果是1发送AD值
           {
                                    temp++;
                       delay(10);                //发送间隔
                    TI=0;
                            EN=1;                                   //使能发送
                    delay(10);
                         SBUF=r_dat[0];
                         while(!TI);
                        TI=0;       
                       GET_AD();                          //ad转换
                  
             }
主机通过光耦控制485芯片DS75176.从机直连的DS75176
 楼主| taijing33 发表于 2011-10-15 10:02 | 显示全部楼层
问题补充。我要是用电脑串口直接连接从机,给从机发送1.从机就能发出数据,并且主机通过485能接收到正确AD值。主机在上电的时候我同样用串口监视到了主机发送了 1.
如果我把主从机的串口直连。他们能通讯。但是从机好像没进行AD转换。主机收到的AD值一直是0
 楼主| taijing33 发表于 2011-10-15 10:44 | 显示全部楼层
可能是485不能发送
您需要登录后才可以回帖 登录 | 注册

本版积分规则

162

主题

364

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部

162

主题

364

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部