打印

485主从机通信问题

[复制链接]
2156|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝