《ZigBee实战演练》学习笔记

学习zigbeeCC2530中的问题:关于P0,P1,P2端口的设置问题(SEL,DIR,INP) 关于P0,P1,P2端口的设置问题(SEL,DIR,INP)          首先要说的是,P0有八个引脚(分别是P0_0,P0_1,P0_2,P0_3,P0_4,P0_5,P0_6,P0_7),P1也有八个引脚(P1_0,P1_1,P1_2,P1_3,P1_4,P1_5,P1_6,P1_7),P2(P1_0,P2_1,P2_2,P2_3,P2_4)有五个引脚,一共就有21个引脚。      阅读详情

《ZigBee实战演练》学习笔记

       学习者:陈美

版本记录

2015/10/17起草

初步了解ZigBee是什么和开发环境的快速建立以及基础实验的第一个实验:点亮第一个LED。

2015/10/25修订

点亮第二个LED、点亮第三个LED、同时点亮第一个LED,第二个LED,点亮第三个LED、循环点亮三个LED。

2015/10/28修订

通用I/O、各类寄存器的相关知识

2015/11/5修订

完成按键实验以及拓展实验

2015/11/8修订

熟悉中断的相关知识完成外部中断相关实验

2015/11/9修订

利用定时器使LED周期性闪烁。

2015/11/13修订

串口通讯相关实验

 

2015/11/14修订

AD控制(自带温度计)相关实验、睡眠唤醒相关实验

2015/11/15修订

看门狗相关实验、LCD12864液晶显示相关实验

2015/11/16修订

Zigbee协议栈简介、无线点灯相关实验

2015/11/18修订

信号传输质量检测相关实验

2015/11/23修订

协议栈工作原理介绍、协议栈中的串口实验

2015/11/24修订

协议栈中的按键实验、一 小时实现无线数据传输、串口透 传,打造无线串口模块

2015/11/27修订

网络通讯实验(单播、组播、广播)、Zigbee 协议栈网络 管理

 

 

 

 

 

 

学习目标

一、完成九个基础实验。

二、完成八个组网实验。

学习内容

一、初步了解ZigBee是什么和开发环境的快速建立以及基础

 实验的第一个实验:点亮第一个LED。

       1ZigBee简介

(1)它是一种低功耗个域网协议,根据这个协议规定的即使一种短距离,低功耗的无线组网通信技术。

(2)ZigBee的结点类型:协调器(只有一个)、路由器、终端。

2、ZigBee开发平台

平台:IAR+Z_stack  2007  PRO

芯片:TI公司的CC2530

3、开发环境的快速建立

(1)相关软件和驱动安装

S1:安装IAR8.10方法

解压:网蜂科技(WeBee) ZigBee开发套件配套资源 (适用于2014年9月22日之后购买的用户).rar-->双击解压后生成的文件夹-->双击“开发软件和驱动”-->双击“IAR-EW8051-8101(带注册机)”-->双击“IAR kegen PartA810.exe”(因为这个软件的正版是要收钱的买那个密钥,而中国一般用的都是盗版的,一些牛人把它给破解了,用注册机能自动生成密钥。所以我们得先打开这个可执行程序来获取这个密钥)-->双击“EW8051-EV-Web-8101.exe”,然后直接下一步,下一步,下一步。。。。。中间会提示输入license和license key。还有路径的选择(我安装的路径是F:\,。安装完成后可以在F:\common\bin路径下找到IarIdePm.exe)。

S2:TI协议栈Zstack_CC2530_2.5.1a安装方法

(目前八个基础实验还用不到这个软件,等八个实验做完以后可能会用到)双击解压后生成的文件夹-->双击“开发软件和驱动”-->双击“ZStack-CC2530-2.5.1a.exe”下一步....

S3:仿真器SRF04EB驱动安装方法

(该步骤是对于首次安装该驱动的计算机)插上仿真器,状态栏会检测到正在安装设备驱动程序软件-->打开设备管理器(在控制面板中),会看到的其他设备栏下有出现带感叹号的SmartRF04EB,选中右击选择“更新程序驱动软件”-->选择“浏览计算机以查找驱动程序软件”-->单击“浏览”选择该仿真器驱动所在位置-->下一步,待成功安装后关闭。

S4:USB转串口驱动的安装

(我们观察到CC2530开发板,它上面有一个连接仿真器的接口还有一个接口类似于、就是串口,它也要和电脑的USB接口通过USB线连接可用于串口发送实验。我们在做串口实验的时候,我们其实是需要串口线的,它是专用的线,但是由于一些缺陷我们用USB线代替,要实现这个功能就必须安装驱动。驱动(软件)是硬件工作。ZigBee 所有开发板上集成 PL2303 的 USB 转串口芯片,我们通过安装相应的驱动可通过 USB 直接开发调试。安装时候建议 USB 线不连接 zigbee 开发板! )

双击解压后生成的文件夹-->双击“开发软件和驱动”-->双击“串口调试助手和驱动”-->双击“PL2030驱动”-->双击“PL2303_driver(默认安装这个).exe”-->下一步,完成。安装好后,通过方口 USB 线连接 zigbee 开发板,我们右键打开我的电脑--属性—硬件—设备管理器,在端口栏下查看到 USB-to-Serial Com,说明驱动安装成功。

(2)IAR工程文件的快速建立

S1:新建项目

S2:新建文件

S3:编写代码

S4:配置

S5:编译、下载与仿真、运行

附:使用TI  SmartRF  Flash  Programmer下载程序

    它是另外一种程序烧写方法。虽然简单,迅速。但是它好像不能用于调试程序。目前我们做的实验,代码都是复制粘贴的,因此用不到调试,但是后期随着程序的复杂,需自己慢慢调试,因此,该种程序烧写方法不建议使用。

      相关知识:

无线模块:高性能专业数据传输模块。

MCU:微控单元,单片微型计算机或者单片机。把中央处理器的频率与规格做适当缩减,并将内存,计数器等都整合在单一芯片上,形成的芯片级计算机。

芯片:可以把程序烧写进去。

PCB模块:印制电路板,又称印刷电路板,是电子元器件电气连接的提供。

电气连接:指产品内部将不同导体连接起来的所有方式。

ZigBee:单片机+无线模块。

节点:CC2530开发板也叫节点。因为它也可以不连接计算机,由电池供电。

 

二、点亮第二个LED、点亮第三个LED、同时点亮第一个LED,第

    二个LED,点亮第三个LED、循环点亮三个LED。

1、深入理解“点亮第一个LED”代码

源代码:

#include <ioCC2530.h>

#define  LED1  P1_0    //定义P10口为LED1控制端

void IO_Init(void)

{

  P1DIR |= 0x01;     //P1_0定义为输出

  P1INP |= 0X01;    

  LED1 = 1;       //点亮LED1

}

void main(void)

{   

    IO_Init();      //调用初始化程序

    while(1);//让程序进入无限循环,目的是为了让程序一                直保持在我们需要运行的情况下

}

 首先,我们的这个实验目的就是要点亮第一个LED,那么我们是通过代码(软件)让硬件工作,而软件是不能直接让硬件工作的,是通过间接方式上。作为这中间桥梁的其实是寄存器,涉及到的寄存器有功能寄存器、方向寄存器和配置寄存器。应当注意的是方向寄存器,它是决定让那个灯亮的依据。代码是高级语言,无法直接控制硬件工作的,的找一个听得懂该语言的东西,这个东西就是寄存器,代码通过操作寄存器简接使硬件工作。

 在以上代码中,我们可以看到P1DIR |= 0x01; 该句代码中P1DIR的功能就是在选择哪个灯亮。此处它的值是0x01,它是一个十六进制的数。转化为二进制后是八位,则功能寄存器是八位寄存器。0x01=0000 0001。再查看传感器地板,控制LED1的端口是P1_0,因此在程序的最开始要自定义#define LED1 P1_0,在main函数中要设置LED1=1,表示点亮LED1。而八位二进制的最低位是1,其余是0

 2、点亮第二个LED2和第三个LED3

 通过对点亮第一个LED1的代码理解后,再结合传感器底板的观察,可知控制LED2的端口是P1_1,而控制LED3的端口是P1_4,因此如果想点亮LED2,则在以上代码中仅将自定义改成#define LED2 P1_1,IO_Init(void)中将P1DIR的值改为0x10mainvoid)中将LED1 = 1改为LED2=1,其余不变。点亮LED3同样一次对应修改。

  3、同时点亮LED1LED2LED3

#include <ioCC2530.h>

#define LED1 P1_0    //定义P10口为LED1控制端

#define LED2 P1_1    //定义P11口为LED2控制端

#define LED3 P1_4    //定义P14口为LED3控制端

 

void IO_Init(void)

{

  P1DIR |= 0x13;     //P1_0定义为输出

  P1INP |= 0X01;    

  LED1 = 1;       //点亮LED1

  LED2 = 1;       //点亮LED2

  LED3 = 1;       //点亮LED3

}

void main(void)

{   

    IO_Init();      //调用初始化程序

   

    while(1);

}

    PS:以上代码中加粗部分为修改部分。

4、循环点亮三个LED

我们要循环点亮三个LED,那么我们得控制好循环的次数。而且为了实验现象明显我们得想到延迟,那么必定要写一个延迟函数。然后在main函数中分别调用这些函数来实现循环亮灭。

#include <ioCC2530.h>

#define LED1 P1_0 //定义P10口为LED1控制端

#define LED2 P1_1

#define LED3 P1_4

void Delay(unsigned char n) ;

 

//延时函数

void Delay(unsigned char n)  

{

  unsigned char i;

  unsigned int j;

  for(i = 0; i < n; i++)

    for(j = 1; j < 3000; j++)

    {

    asm("NOP");

    asm("NOP");

    asm("NOP");

    }

}   

void IO_Init(void)

{

  P1DIR |= 0x13;     //P1_0定义为输出

  P1INP |= 0X01;    

}

 

void main(void)

{   

    IO_Init();      //调用初始化程序

    unsigned char i;

    int n=100;//控制循环的次数

    LED1=0;

    LED2=0;

    LED3=0;

    for(i=0;i<n;i++)

     {

       LED1 = 0; //LED1灯灭    

       Delay(500);//延时

       LED1 = 1; //点亮LED1

       Delay(500);//延时

       LED1 = 0; //LED1灯灭

       

       LED2 = 0; //LED2灯灭  

       Delay(500);//延时

       LED2 = 1;//点亮LED2  

       Delay(500);//延时

       LED2 = 0; //LED2灯灭  

       

         

       LED3 = 0; //LED3灯灭  

       Delay(500);//延时

       LED3 = 1;//点亮LED2

       Delay(500);//延时

       LED3 = 0; //LED3灯灭

     }

}

 

三、通用I/O、各类寄存器的相关知识

1、通用I/O

CC253021个输入/输出引脚,可以配置为通用数字I/O或外设I/O为不同信号服务。当I/O口用作通用I/O时引脚可以组成38位端口,端口0,端口1和端口2,分别用P0P1P2来表示。

端口0P0口:有8位端口,分别是P0_0~P0_7

如:控制key

端口1P1口:有8位端口,分别是P1_0~P1_7

如:控制LED

端口2P2口:有5位端口,分别是P2_0~P2_4

   根据寄存器设置的不同,可以将端口设置为输入/输                    出状态,通用I/O端口常用的寄存器有功能寄存器PxSEL(其中x端口的标号0~2),方向寄存器PxDIR(其中x端口的标号0~2),配置寄存器PxINP(其中x端口的标号0~2)。

(引脚、端口、接口、口)

2、寄存器

功能寄存器PxSEL、方向寄存器PxDIR、设置寄存器PxINP

的设置都是针对某一个端口,端口的几个引脚共同设置。

 

* PxSEL (0:普通 IO1:第二功能)

* PxDIR (0:输入 1:输出)

* PxINP (0:上拉/下拉1:三态)

上拉:就是要接到电源正极有时候可以直接接到电源正极,有时候需要通过电阻接到电源正极;

下拉:就是接地;

三态:就是导通,截止,高组,高阻就是电阻变得特别大。

 

3、功能寄存器PxSEL

功能寄存器用来设置端口的引脚为通用I/O或外设I/O信号。PxSEL (0:普通IO 1:第二功能)。复位之后,所有的数字I/O引脚都被设置为通用输入引脚。  如果要将某一引脚设置为通用I/O或者是外设I/O只需要将相应的“位”设置为01即可。比如要将P0_1设置为通用I/O,此时需要将P0SEL的“第一位”置0;将P0_2设置为外设I/O,此时需要将P0SEL的“第二位”置1

例:

/*P0_1设置为通用I/O引脚*/

P0SEL &=~0x02

/*P0_2设置为外设I/O引脚*/

P0SEL|=0x04

4、方向寄存器PxDIR

当端口用作通用I/O,可以用方向寄存器来配置端口的信号方向。PxDIR (0:输入1:输出)。复位之后,所有数字I/O引脚都被设置为输入引脚。   如果要将端口某一引脚设置为通用I/O的输入或输入功能时,只需要将PXDIR寄存器相应“位”设置为01即可,比如要将P0_1设置为输入I/O,此时需要将P0DIR的“第一位”置0;将P0_2设置为输出I/O,此时需要将P0SEL的“第二位”置1

例:

/*P0_1设置为输入I/O引脚*/

P0DIR&=~0x02

/*P0_1设置为输入I/O引脚*/

P0DIR1=0x04

5、配置寄存器PxINP

当端口用作通用I/O输入时,引脚可以设置为上拉、下拉和三态操作模式。复位之后,所有端口均被设置为带有上拉的输入。要取消输入的上拉和下拉功能,需要将PxINP中的对应“位”设置为1。如果要将某一引脚设置为上拉/下拉或者是三态,此时需要将相应的位设置为01即可,比如要将P0_5设置为上拉/下拉,此时需要将P0INP的“第五位”置0;如果将P0_3设置为三态功能时,此时需要将P0INP的“第三位”置1

例:

/*p0_5设置为上拉\下拉功能*/

P0INP&=~0x20

/*p0_3设置为三态功能*/

P0INP|=0x08

 

不是规则的规则:对某一“位”设置就先将那一“位”设值为1,剩余其他设值为0。设置为功能“0”是用“&=~”,设置为功能“1”是用“|=”。而功能寄存器和配置寄存器通常只需设置第一位,而方向寄存器需配置多位(如根据根据灯的个数按键的个数)。

 

四、完成按键实验以及拓展实验

1、通过按下按键S1来控制LED1的亮灭

1)现象:LED1不亮的时候,当你按下S1并松手后,LED1

就亮了。

LED1不亮的时候,当你按下S1不松手,LED1

仍不会亮。

LED1亮的时候,当你按下S1并松手后,LED1

就灭了。

LED1亮的时候,当你按下S1不松手,LED1

不会灭。

2)代码:

#include <ioCC2530.h>

 

#define uint unsigned int

#define uchar unsigned char

 

//定义控制LED灯的端口

#define LED1 P1_0 //LED1P1.0口控制

#define KEY1 P0_0  //KEY1P0.0口控制

 

//函数声明

void Delayms(uint); //延时函数

void InitLed(void); //初始化LED1

void KeyInit();         //按键初始化

uchar KeyScan();       //按键扫描程序

 

延时函数

void Delayms(uint xms)   //i=xms 即延时i毫秒

{

 uint i,j;

 for(i=xms;i>0;i--)

   for(j=587;j>0;j--);

}

 

                  LED初始化函数

void InitLed(void)

{

  P1DIR |= 0x01;    //P1_0定义为输出

  P1INP |= 0X01;   

  LED1 = 0;      //LED1灯一开始是熄灭状态     

}

 

按键初始化函数

void InitKey()

{

  P0SEL &= ~0X01;    //设置P00为普通IO口  

  P0DIR &= ~0X01;    //按键在P00口,设置为输入模式

  P0INP &= ~0x01;    //打开P00上拉电阻,不影响

}

 

按键检测函数

uchar KeyScan(void)

{

  if(KEY1==0)

  {

      Delayms(10);

      if(KEY1==0)

      {

        while(!KEY1);  //松手检测

        return 1;      //有按键按下

      }

  }

  return 0;           //无按键按下

}

 

主函数

void main(void)

{

  InitLed( ); //调用初始化函数

  InitKey( );

  while(1)

  {

    if(KeyScan())       //按键改变LED状态

    LED1=~LED1;     

      

  }

}

3)对部分代码的解释

A)uchar KeyScan();       //按键扫描程序

uchar KeyScan(void)

{

  if(KEY1==0)

  {

      Delayms(10);

      if(KEY1==0)

      {

        while(!KEY1);  //松手检测

        return 1;      //有按键按下

      }

  }

  return 0;           //无按键按下

}

上述的按键扫描程序中,函数体内体用了两个if语句即if嵌套语句,中间用了delayms函数。这样做的目的是为防止“鬼影”,专业术语:去抖动。举一个例子:有一扇门,我们现在要检测是否有人痛过这扇门。在某一个时刻,我们开始检测,有一个人正要准备这扇门,注意只是正准备痛过而还没有痛过也就是这一时刻检测员没有检测到,于是记录下没有人通过的结果。但是在这时刻的下一秒这个人就通过了这扇门。因此,该检测员记录的结果不对。如果检测员多等一会儿,就可以检测到结果。接下来,Key==1表示手在按键上(这里默认为有力的作用),Key==0表示手离开了按键。而while(!Key);也是为了多次确保手已离开了按键。这两步共同决定了是否有按键按下。这个按键扫描程序也很好地解释了一开始的四种现象。

 

2、通过按下按键S1来控制LED1的亮灭,通过按下按键S2

来控制LED2的亮灭。

1)相关的代码:

#include <ioCC2530.h>

 

#define uint unsigned int

#define uchar unsigned char

 

//定义控制LED灯的端口

#define LED1 P1_0 //LED1P1.0口控制

#define KEY1 P0_0      //KEY1P0.0口控制

 

#define LED2 P1_1 //LED2P1.0口控制

#define KEY2 P0_1     //KEY2P0.0口控制

 

 

//函数声明

void Delayms(uint); //延时函数

void InitLed(void); //初始化LED1

void KeyInit();                 //按键初始化

uchar KeyScan1();            //按键扫描程序

uchar KeyScan2();            //按键扫描程序

 

 

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

延时函数

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

void Delayms(uint xms)   //i=xms 即延时i毫秒

{

 uint i,j;

 for(i=xms;i>0;i--)

   for(j=587;j>0;j--);

}

 

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

      LED初始化函数

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

void InitLed(void)

{

  P1DIR |= 0x03;    //P1_0P1_1定义为输出

  P1INP |= 0X01;  

  LED1 = 0;         //LED1灯熄灭

  LED2 = 0;         //LED2灯熄灭

  

}

 

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

     按键初始化函数

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

void InitKey()

{

  P0SEL &= ~0X01;    //设置P00为普通IO口  

  P0DIR &= ~0X03;    //按键在P00P01口,设置为输入模式

  P0INP &= ~0x01;    //打开P00上拉电阻,不影响

}

 

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

     按键检测函数

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

uchar KeyScan1(void)

{

  if(KEY1==0)

  {Delayms(10);

      if(KEY1==0)

      {

        while(!KEY1);  //松手检测

        return 1;      //有按键按下

      }

  }

  return 0;           //

简单入门Zigbee 简单入门Zigbee 之前一直忙于校招,没有来得及时间做,前段时间终于签约了,所以现在趁着时间空,赶紧把坑填上了,后面再献上一篇关于校招的心得。闲话不多说,开始进入正题。 先给大家基本介绍一下zigbee ZigBee译为"紫蜂",它与蓝牙相类似。是一种新兴的短距离无线通信技术,相较于传统网络通信技术,ZigBee无线通信技术表现出更为高效、便捷的特征。作为一项近距离、低成本、低功耗的无线网络技术... 阅读详情

相关推荐

ZigBee介绍

ZigBee网络 什么是ZigBee技术 Zigbee在中国被译为"紫蜂",是一种基于IEEE802.15.4协议的最近发展起来的一种短距离无线通信技术,功耗低,被业界认为是最有可能应用在工控场合的无线方式。Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,在整个网络范围内,每一个Zigbee网络数传模块之间可以相互通信,每个网络节点间的距离可以

BOTOAI 9886

ZigBee实战演练》V5.0-网蜂团队 倾力打造1

声明《ZigBee 实战演练》已经由网蜂科技于广州版权局注册备案,任何单位或个人未经同意引用相关文字、图例网蜂科技将以法律形式追究责任。版本说明版本日期版本说明

ZigBee简介

一、 ZigBee 概述 1.1 ZigBee 网络节点 Co-ordinator:它是第一个开始的节点,负责创建网络,其他节点要加入该网络需要通过它的允许。一旦网络建立,Co-ordinator 担任路由角色(可以将消息从一个节点转播到另一个节点)并且能发送和接收数据。每个网络中必须有且仅有一个 Co-ordinator。 Router:这是一个具有路由功能的节点,也可以发送和接收数据。它允许...

HQ11112222的博客 5244

ZigBee实战演练》--网蜂团队倾力打造

ZigBee实战演练》--网蜂团队倾力打造 从入门、进阶、实践全面扫盲。

ZigBee常用寄存器

CC2530中常用的控制寄存器   根据学习的不断深入将不断,将陆续更新学习到的寄存器P0SEL(P1SEL相同):各个I/O口的功能选择,0为普通I/O功能,1为外设功能  D7 D6 D5 D4 D3 D2 D1 D0...

Easadon的博客 3070

ZigBee实战演练

转一个多年前的帖,看内容就知道: 为什么学习 ZigBee? 试想着有一天,你坐在电脑前,你家里的空调、冰箱、洗衣机、电视,等在你屏幕前受你掌控时,这便是物联网的时代。我是一名普通的电子爱好者,半年前由于项目需要我接触了ZigBee,在那之前我也曾经了解过ZigBee,感觉是个很神秘的东西,神秘的无线模块。第一天在 ZigBee 模块,我快速寻找着上面的 MCU,很可惜只发现 CC25...

qq_18536597的博客 492

1、ZigBee 开发教程之基础篇—ZigBee简介和学习方法

文章目录1、前言2、ZigBee 简介3、ZigBee和IEEE 802.15.4 的关系4、ZigBee 的特点5、ZigBee 无线网络通信信道分析6、ZigBee的网络拓扑模型7、ZigBee的应用范围8、本人所使用的开发板的硬件资料9、快速掌握ZigBee 的学习方法 1、前言 ​ ZigBee 学习笔记系列是基于笔者需要使用 ZigBee 模组进行项目开发而写的学习笔记。本人从网上购买了 ZigBee 模组来学习,有相关的学习视频以及资料,跟着教程边学边做记录。主要目的如下: 方便自己以后回顾

嵌入式羊圈 3万+

Zigbee学习笔记

作为一个硬件从业人员,虽然不是从事物理网行业的,但是多少得了解一些,以下是笔者最近学习Zigbee的笔记,包含了Zigbee基本知识,正确的学习方法。 Zigbee无线传感网络 先搞清楚IEEE802.15.4协议。 这个协议必须搞清楚,搞不定这个协议,Zigbee永远吃不透。其实学习这个很简单,如果学过TCP/ip的话,大家知道,我们要去掌握整个tcp/ip核心的话,我们要掌握以太网...

weixin_42005993的博客 4302

zigbee学习笔记---入门

首先,本人是一名在读本科生,因为要参加本年度的物联网比赛,故需要掌握一定的Z-Stack知识。一周前本人对Z-Stack了解是完全空白,当时连什么是ZigBee都没听说过,不过本人是本校的物理实验室的常驻人员,有一定的单片机基础。经过近一周的学习现在对Z-Stack也只能说是刚刚入门,把自己的学习笔记分享出来,也算给广大菜鸟级入门童鞋一些参考的东西吧。由于本人本来是做海洋类开发的,兼顾单片机嵌入式

xiaoshengyige的专栏 1万+

zigbee实战演练第三版

zigbee学习的好资料,特别适用于初学者以及将zigbee用于个人项目开发实践

ZigBee实战演练》--网蜂团队倾力打造

初学zigbee 看了这篇文章 很不错 很有收获 分享给大家

ZigBee实战演练

开发ZigBee项目的话,可以下来参考下,有各种项目的代码!

ZigBee实战演练第三版

ZigBee实战演练第三版.Zigbee开发教程

物联网--Zigbee协议(一):Zigbee初识

最近在学习Zigbee的相关知识,发现网上、论坛找到的知识都比较零碎,花费了大量的无效重复的时间,遂打算将我自己系统整理的内容发出来,希望能让同在学习Zigbee的童鞋们提高效率,同时也记录我自己的学习过程。物联网指的是全球数十亿的物理设备都连接到了互联网上,都可以进行数据的收集与共享。将这些不同的物体连接起来,并给它们添加传感器,使原本笨笨的设备增加一个数字智能的层次,使它们能够在不涉及人类的情况下进行实时数据通信。在物联网中,设备的通信存在两类协议。第一类协议是传输协议:负责设备间的组网及通信。

aixuexidexiaowan的博客 1万+

zigbee学习笔记 --认识什么是zigbee

介绍Zigbee的网络角色构成和Cluster属性。

jcf5832的博客 1065

CC2530 GPIO 控制LED灯

GPIO简介 I/O 也称为 General Purpose Input Output (通用输入/输出)简称为 GPIO、 I/O,是单片机通用输入输出接口的总称。通常情况下单片机的计算单元通过向 I/O 控制寄存器写入数据可以控制 I/O 口输入输出模式,实现对某些设备的控制或信号采集的功能。若将通用 I/O 进行组合配置可以实现较为复杂的总线控制接口和串行通信接口。 CC2530 的 I/O 用作通用 I/O 时,引脚可以组成 3 个 8 位端口,端口 0、端口 1...

qq_45366319的博客 2989

zigbee网蜂cc2530组播实验,基于SampleApp例程

1.建立对象afAddrType_t Group_DstAddr;//网蜂组播通信定义

wwfdzh2008的专栏 1659
上一篇: 从事web开发方向的一些思考
下一篇: JavaSE学习笔记_13:Java-System类
java_程序媛
博客等级 码龄11年 26粉丝 24原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值