5556|8

2

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

zigbee学习笔记1(zstack下串口通信) [复制链接]

大家好,纠结了很多次,终于想记录下自己最近的zigbee学习过程,由于第一次发帖,经验不足,语言能力不足,敬请谅解。希望对新手有帮助。最近由于需要开发无线传感器网络烟雾探测项目,无线传感网络选择zigbee,本人语言表达能力比较差,但是希望记载下自己的学习经历,分享自己的学习经验,希望能够对大家有帮助,同时也希望大家相互交流。由于笔者,以前没有搞过操作系统,所以可能对于zstack的内部操作系统了解不深,只是记录下自己的学习经历。
我所用的开发板是成都感知的SLANRF-2530DK系统开发板。
每次新接触到一款单片机,首先就要调通它的串口,
硬件需要:CC2530开发板(选择P0-2,P0-3)串口


                 PC机
功能:发送任意字符串给单片机,单片机再把数据返回给PC电脑
对于像我这样的新手,拿到zstack之后肯定是无从下手的啦,那么多的文件,还有各种看不懂的函数,参数,说句实话刚开始的时候蛋都碎了,但是首先对于我,我要明白的是,我是来用zigbee的,不是来研究zigbee的,所以我们只需要了解zigbee的执行流程以及,如何像51单片机一样用他,我觉得就可以了。
首先说下执行流程:  1.打开zmain函数,这是整个zstack执行的主函数
                                   2. 定位到  osal_init_system();这个函数是系统初始化函数(zstack嵌入了osal操作系统)
                                    3.go to define of   osal_init_system;及打开osal.c文件,找到 osalInitTasks();(任务初始化函数)开始执行任务了,
注册任务:
const pTaskEventHandlerFn tasksArr[] = {
  macEventLoop,//MAC任务循环
  nwk_event_loop,//网络层任务函数
  Hal_ProcessEvent,//硬件层函数
#if defined( MT_TASK )
  MT_ProcessEvent,//串口支持层定义
#endif
  APS_event_loop,//应用支持层任务事件函数
#if defined ( ZIGBEE_FRAGMENTATION )
  APSF_ProcessEvent,
#endif
  ZDApp_event_loop,//设备对象层函数
#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
  ZDNwkMgr_event_loop,
#endif
  GenericApp_ProcessEvent//自己定义的任务处理函数
};

初始化任务:
void osalInitTasks( void )//为各个进程添加任务ID,用作查找任务时用
{
  uint8 taskID = 0;

  tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);
  osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));

  macTaskInit( taskID++ );//MAC层的任务ID号
  nwk_init( taskID++ );//网络ID分配
  Hal_Init( taskID++ );//硬件ID分配
#if defined( MT_TASK )
  MT_TaskInit( taskID++ );
#endif
  APS_Init( taskID++ );
#if defined ( ZIGBEE_FRAGMENTATION )
  APSF_Init( taskID++ );
#endif
  ZDApp_Init( taskID++ );
#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
  ZDNwkMgr_Init( taskID++ );
#endif
  GenericApp_Init( taskID );//为自己的任务添加ID
}

红颜色的字,是我们需要添加的
4.新建coordinator.c(协调器)
端口注册,初始化,任务注册,任务初始化,串口初始化
  uartConfig.configured           = TRUE;              // 2x30 don't care - see uart driver.
  uartConfig.baudRate             = HAL_UART_BR_115200;
  uartConfig.flowControl          = FALSE;
  uartConfig.flowControlThreshold = 64; // 2x30 don't care - see uart driver.
  uartConfig.rx.maxBufSize        = 128;  // 2x30 don't care - see uart driver.
  uartConfig.tx.maxBufSize        = 128;  // 2x30 don't care - see uart driver.
  uartConfig.idleTimeout          = 6;   // 2x30 don't care - see uart driver.
  uartConfig.intEnable            = TRUE;              // 2x30 don't care - see uart driver.
  uartConfig.callBackFunc         = rxCB;(串口回执函数)
  HalUARTOpen (0, &uartConfig);
static void rxCB(uint8 port,uint8 event)
{  
unsigned  char Uartbuf[10];
unsigned char len;
len=HalUARTRead(0,Uartbuf,10);
if(len)
{
    HalUARTWrite(0,Uartbuf,len);
    len=0;
}
}

5.实现串口发送:
通过HalUARTRead读取pc机发送的数据,然后放到Uartbuf中
通过HalUARTRead发送数据给PC机
6.编译下载程序到CC2530中
以上就是串口的过程,后续还会继续更新,谢谢大家

终端节点.jpg (74.93 KB, 下载次数: 2)

终端节点.jpg
此帖出自无线连接论坛

最新回复

不错,挺好!  详情 回复 发表于 2015-6-18 14:40

赞赏

1

查看全部赞赏

点赞 关注(1)
 

回复
举报

81

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
看来TI的2530很流行啊!!!
此帖出自无线连接论坛
个人签名51嵌入式,嵌入式开发的家园!51嵌入式官方QQ群52497844,欢迎爱好者加入。
 
 

回复

350

帖子

5

TA的资源

纯净的硅(初级)

板凳
 
2530其实挺不错的,貌似现在学ZIGBEE的都是在学2530,我也买了一套板子,只不过现在没时间学习了啊,哎~
此帖出自无线连接论坛
个人签名成功者找方法,失败者找理由
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

4
 
是啊,现在趁还在学校多学点知识,装备自己,最主要的是多学一些解决问题的手段与方法
此帖出自无线连接论坛
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

5
 
这东西哪里有卖的啊
此帖出自无线连接论坛

点评

你可以看看这个帖子和他们的淘宝信息,有相应的zigbee套件  详情 回复 发表于 2014-3-10 22:08
 
 
 

回复

3238

帖子

5

TA的资源

五彩晶圆(中级)

6
 
renkaikaiser 发表于 2014-3-10 12:34
这东西哪里有卖的啊

你可以看看这个帖子https://bbs.eeworld.com.cn/thread-430376-1-1.html 和他们的淘宝信息,有相应的zigbee套件
此帖出自无线连接论坛
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

7
 
很不错,我也用上了
此帖出自无线连接论坛
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

8
 
感觉你这个说的不全啊,能说的详细一点吗
此帖出自无线连接论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(初级)

9
 
不错,挺好!
此帖出自无线连接论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表