组播多终端控制协调器LED实验:实现多终端通讯与LED开关提示.pdfVIP

  • 0
  • 0
  • 约7.25千字
  • 约 7页
  • 2026-01-28 发布于四川
  • 举报

组播多终端控制协调器LED实验:实现多终端通讯与LED开关提示.pdf

4.组播‑多终端控制协调器LED

实验内容:

1.实验多终端通讯2.实现组播通讯,协调器不响应其

他组发来的数据3.掌握LED开关

提示:由于组播需要三个节点才能真正完成此实验,一个协调器,两个终端。如果只有两个节点就

只能完成部分内容了。其实代码并不复杂,看看代码也就清楚组播是怎么回事了。

实现现象:

三个节点,一个节点作为协调器,另外两个节点作为终端。按下终端S1键时,协调器

Led2状态改变,同时终端自身的Led2状态也改变,提示发送成功。修改其中一个终端的

组编号,编译后,按下此终端S1键时,观察协调器Led2状态是否改变。

实验详解:

打开..\EB2530\第5章zigbee协议栈应用与组网\4.组播‑多终端控制协调器

LED\ZStack‑CC2530‑2.3.0‑1.4.0\Projects\zstack\Samp\SampleApp\CC2530DB\SampleApp.ew工程。

由于此实验是基于TI的SampleApp修改的,SampleApp本身就包含了组播的代码,因此我们只需修改少

量代码即可实现实验的功能,现在告诉大家如何进行修改。

1.在全局变量区域定义一个全局变量,用于保存当前LED的状态。

/**********************************************************************

全局变量*/uint8LedState=0;//保存当前Led的状态

_

2.在SampleAppProcessEven函数中找到如下代码:

__

1.caseZDOSTATECHANGE://当网络状态改变,所有节点都会发生2.

__

SampleAppNwkState=(devStatest)(MSGpkt‑hdr.status);3.if

___

((SampleAppNwkState==DEVZBCOORD)//协议器不用发送所以4.||

___

(SampleAppNwkState==DEVROUTER)//路由器5.||(SampleApp

__

NwkState==DEVENDDEVICE))//终端设备6.{7.//开始以常规间隔发送周期

_____

性消息。8.//osalstarttimerEx(SampleAppTaskID,//SAMPLEAPPSEND

______

PERIODICMSGEVT,//SAMPLEAPPSENDPERIODICMSGTIMEOUT);9.}

__

注释osalstarttimerEx这行代码,此实验没有周期件。修改后如红色代码所

示。

_

3.找到按键处理函数SampleAppHandleKeysvoid

_

SampleAppHandleKeys(uint8shift,uint8keys)

{(void)shift;//故意未的参数

4.组播-多终端控制协调器LED

实验内容:

1.实验多终端通讯

2.实现组播通讯,协调器不响应其它组发过来的数据

3.掌握Led开关

提示:由于组播需要三个节点才能真正完成此实验,一个协调器,两个终端。如果只有两个

节点就只能完成部分内容了。其实代码并不复杂,看看代码也就清楚组播是怎么回事了。

实现现象:

三个节点,一个节点做协调器,另外两个节点做终端。按终端S1键时,协调器Led2状态改

变同时终端自身的Led2状态也改

文档评论(0)

1亿VIP精品文档

相关文档