问题是这样的,我在SampleApp的例程上修改了程序,实现了两个ZIGBEE模块的串口透传,具体过程是:pc<—串口—>2530节点....无线传送.....2530协调器<—串口—>pc。这个通信方式是单播点对点的通信。 现在我又加了一个节点。想实现协调器与两个节点的通信。于是我把通信方式改成广播的方式。结果,协调器可以发数据到两个节点,但是,两个节点发数据给协调器,协调器收不到。 这两天自己想了一下。首先,两个节点能收到协调器的数据。说明两个节点都应该加入到网络了。程序的组网应该没什么问题。 其次,协调器能通过串口发数据,节点也能收到数据并在串口上显示。说明串口是没问题的。 疑问:1、协调器的串口接收和发送。与两个节点的串口接收发送。程序应该都是一样的吧? 2、广播通信和单播通信,有什么不同吗?需要修改哪些地方? 我的修改如下: SampleApp_SPI_SendData_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast;//Addr16Bit(单播);//AddrBroadcast(广播); SampleApp_SPI_SendData_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; #if defined(ZDO_COORDINATOR) SampleApp_SPI_SendData_DstAddr.addr.shortAddr = 0xFFFF; //0x796F;0x0000 #else SampleApp_SPI_SendData_DstAddr.addr.shortAddr = 0x0000; #endif 又不对的地方,请各位老师指正! 3、还有可能就是我修改的程序有问题,但是我找不到问题出在哪地方。我先上传下我的修改的程序,希望老师们能指点出错误哈。。。。
PS:我是自学的ZIGBEE,这也是我第一次发帖,因为我的原则是,有问题,能自己解决就一定自己解决(其实好多一开始自己认为解决不了的问题,到最后都被自己解决了*—*)!希望在这里各位老师们、师哥师姐们能够帮我解决我真的解决不了的问题哈!
|