发 帖  
原厂入驻New
[问答] 求助两个单片机之间用zigbee收发的乱码问题的解决办法?
39 单片机
分享
目前在调一个智能家居方面的模块,主要就是从插座这里反馈环境数据 插座有没有通电 时间等等之类的数据给接收方,接收方使用串口与PC通信
目前只需要用到两个zigbee,一个是协调器,也就是与PC通信的那个,用于接收插座发过来的数据以及从PC发送指令给插座;
另一个插座,设置为路由器,可以单片机采集各种数据然后通过串口zigbee发送给协调器。
目前是这样的情况,路由器通过PC监测可以发现PC串口与给zigbee串口的数据转发是正确的,可以发送多字节并且数据正确,协调器的PC串口与zigbee直接相接,PC给的数据直接给zigbee不用内部再转发。
以下是路由器的串口部分:
void Uart1_send(uchar temp)//串口1发送函数
{
        SBUF=temp;
        while(ti==0);
        TI=0;
}
void Uart2_send(uchar temp)//串口2发送函数
{
        S2BUF=temp;
        while((S2CON & 0x02)==0);
        S2CON&=0xfd;
}
void   Isr_Uart1 (void) interrupt 4         //串口1中断程序
{
        uchar temp;
        IF (RI == 1)//接收到PC发来的数据
        {        
                RI   = 0    ;
                temp = SBUF ;               
                S2BUF = temp ;//转发至串口2路由ZigBee
        }
        if (TI == 1)//发送中断
        {
            TI   = 0    ;
        }
        
}
void   Isr_Uart2  ( void )  interrupt 8  
{
        uchar temp;
        if ( S2CON & 0x01 )                //S2RI==1
        {
            S2CON  &=  0xfe;
            temp  = S2BUF ;        
            SBUF  = temp ;//转发至串口1C用于监测
        }
        if ( S2CON & 0x02 )            //S2TI==1
        {
            S2CON  &=  0xfd;
        }
}
以下是协调器的串口部分:
void Uart1_send(uchar temp)//发送数据给PC,监测从PC接收到的数据是否与PC输入数据一致
{
         SBUF=temp;
        while(TI==0);
        TI=0;
}                           
void   Isr_Uart1 (void) interrupt 4         //串口1中断程序 该串口与zigbee和PC相连
{
        uchar temp;
        if (RI == 1)   //数据接收  协调器zigbee通过串口1从PC接收到要发送的指令
        {
                RI   = 0    ;
                temp = SBUF ;
                Uart1_send(temp); //调试用,监测数据
        }
        if (TI == 1)//数据传送   协调器zigbee接收到路由发送的数据并发送到PC显示
        {
            TI   = 0    ;
        }        
}
以下是相互收发从PC上监测的数据:串口4连的是路由  发送为点对点传输模式 数据:0XFD(点对点传输模式指令) 0X01(发送的数据长度) 0X00 0X00(这两个字节为目的地址 即协调器地址) 0X00 (要传送的数据)
串口5连的是协调器  发送为点对点传输模式 数据:0XFD(点对点传输模式指令) 0X01(发送的数据长度) 0X00 0X01(这两个字节为目的地址 即路由器地址) 0X00 (要传送的数据)
不解的是在电脑上调试的时候从PC串口转发到zigbee串口数据是完全正确的 但是zigbee互发之后不仅没传输正确 PC监测到的数据也不正确了
求大神解答~不胜感激~

0
2020-8-26 06:31:58   评论 分享淘帖 邀请回答
1个回答

只有小组成员才能发言,加入小组>>

119个成员聚集在这个小组

加入小组

热门话题

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表