找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2677|回复: 1
打印 上一主题 下一主题
收起左侧

CC2530和GY30光敏传感器的使用源代码

[复制链接]
跳转到指定楼层
楼主
ID:538984 发表于 2019-5-15 16:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
详情看代码吧

单片机源程序如下:
  1. #include "OSAL.h"
  2. #include "AF.h"
  3. #include "ZDApp.h"
  4. #include "ZDObject.h"
  5. #include "ZDProfile.h"

  6. #include "Common.h"
  7. #include "DebugTrace.h"

  8. #if !defined( WIN32 )
  9.   #include "OnBoard.h"
  10. #endif

  11. /* HAL */
  12. #include "hal_lcd.h"
  13. #include "hal_led.h"
  14. #include "hal_key.h"
  15. #include "hal_uart.h"
  16. #include "OSAL_Nv.h"


  17. const cId_t SampleApp_ClusterList[SampleApp_MAX_CLUSTERS] =
  18. {
  19.   REPORT_CLUSTER_ID
  20. };
  21.                         
  22. const SimpleDescriptionFormat_t SampleApp_SimpleDesc =
  23. {
  24.   SampleApp_ENDPOINT,              //  int Endpoint;
  25.   SampleApp_PROFID,                //  uint16 AppProfId[2];
  26.   SampleApp_DEVICEID,              //  uint16 AppDeviceId[2];
  27.   SampleApp_DEVICE_VERSION,        //  int   AppDevVer:4;
  28.   SampleApp_FLAGS,                 //  int   AppFlags:4;
  29.   SampleApp_MAX_CLUSTERS,          //  byte  AppNumInClusters;
  30.   (cId_t *)SampleApp_ClusterList,  //  byte *pAppInClusterList;
  31.   0,          //  byte  AppNumInClusters;
  32.   (cId_t *)NULL       // (cId_t *)NULL    byte *pAppInClusterList;
  33. };

  34. //static uint8 SerialApp_TxLen;
  35. endPointDesc_t SampleApp_epDesc;
  36. uint8 SampleApp_TaskID;   
  37. devStates_t SampleApp_NwkState;

  38. uint8 SampleApp_TransID;  // This is the unique message ID (counter)

  39. afAddrType_t SampleApp_Dst_DstAddr;

  40. void SampleApp_MessageMSGCB(afIncomingMSGPacket_t *pkt);


  41. void SampleApp_Init( byte task_id )
  42. {
  43.   halUARTCfg_t uartConfig;
  44.   SampleApp_TaskID = task_id;
  45.   SampleApp_TransID = 0;
  46.   
  47.   SampleApp_epDesc.endPoint = SampleApp_ENDPOINT;
  48.   SampleApp_epDesc.task_id = &SampleApp_TaskID;
  49.   SampleApp_epDesc.simpleDesc
  50.             = (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc;
  51.   SampleApp_epDesc.latencyReq = noLatencyReqs;
  52.   afRegister( &SampleApp_epDesc );
  53. uartConfig.configured           = TRUE;         
  54.   uartConfig.baudRate             = BAUD;
  55.   uartConfig.flowControl          = FALSE;   
  56.   uartConfig.rx.maxBufSize        = RX_SZ;  
  57.   uartConfig.tx.maxBufSize        = TX_SZ;
  58.   uartConfig.idleTimeout          = IDLE;  
  59.   uartConfig.intEnable            = TRUE;
  60.   uartConfig.callBackFunc         =NULL;
  61.   HalUARTOpen (PORT, &uartConfig); //配置串口
  62.   
  63.   P1DIR|=0x0E;
  64.   LED1 =0;
  65.   LED2 =0;

  66. }

  67. UINT16 SampleApp_ProcessEvent( byte task_id, UINT16 events )
  68. {
  69.   afIncomingMSGPacket_t *MSGpkt;

  70.   if ( events & SYS_EVENT_MSG )
  71.   {
  72.     MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
  73.     while ( MSGpkt )
  74.     {
  75.       switch ( MSGpkt->hdr.event )
  76.       {
  77.         case AF_INCOMING_MSG_CMD:
  78.          SampleApp_MessageMSGCB(MSGpkt);
  79.          LED2=!LED2;
  80.             break;
  81.           case ZDO_STATE_CHANGE:
  82.           SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
  83.           if ( (SampleApp_NwkState == DEV_ZB_COORD)
  84.               || (SampleApp_NwkState == DEV_ROUTER)
  85.               || (SampleApp_NwkState == DEV_END_DEVICE) )
  86.           {
  87.             LED1=1; //若成功创建网络则点亮LED2
  88.           }
  89.           else
  90.           {
  91.             LED1=0;// Device is no longer in the network
  92.           }
  93.           break;
  94.         default:
  95.           break;
  96.       }
  97.       osal_msg_deallocate( (uint8 *)MSGpkt );
  98.       MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
  99.     }
  100.     return (events ^ SYS_EVENT_MSG);
  101.   }
  102.   
  103.   return 0;
  104. }

  105. void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
  106. {
  107.   unsigned char buffer[2];
  108.   unsigned char WenDuChars[2];
  109.   unsigned char ShiDuChars[2];
  110.    
  111.   switch (pkt->clusterId) {
  112.   case REPORT_CLUSTER_ID:
  113.        osal_memcpy(buffer,pkt->cmd.Data,2);
  114.     if(buffer[0]!=0)
  115.       {
  116.         WenDuChars[0]=buffer[0]/10+'0';
  117.         WenDuChars[1]=buffer[0]%10+'0';
  118.         HalUARTWrite(0,"采集到的温度是:",16);
  119.         HalUARTWrite(0,WenDuChars,2);
  120.       }
  121.       else
  122.       {
  123.         HalUARTWrite(0,"It's Wrong",10);
  124.         HalUARTWrite(0,"\n",1);
  125.       }
  126.       if(buffer[1]!=0)
  127.       {
  128.         ShiDuChars[0]=buffer[1]/10+'0';
  129.         ShiDuChars[1]=buffer[1]%10+'0';
  130.         HalUARTWrite(0,"采集到的湿度是:",16);
  131.         HalUARTWrite(0,ShiDuChars,2);
  132.         HalUARTWrite(0,"\n",1);
  133.       }
  134.       else
  135.       {
  136.         HalUARTWrite(0,"It's Wrong",10);
  137.         HalUARTWrite(0,"\n",1);
  138.       }
  139.     break;
  140.   }
  141. }
复制代码

所有资料51hei提供下载:
C2530-read-GY-30-LED.zip (32.98 KB, 下载次数: 40)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:538984 发表于 2019-5-15 16:15 | 只看该作者
#include "ZComDef.h" #include "hal_drivers.h" #include "OSAL.h" #include "OSAL_Tasks.h" /////////////////////////////////头文件的包含////////////////////////////// #if defined ( MT_TASK )   #include "MT.h"   #include "MT_TASK.h" #endif  #include "nwk.h" #include "APS.h" #include "ZDApp.h"  #if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )   #include "ZDNwkMgr.h" #endif  #if defined ( ZIGBEE_FRAGMENTATION )   #include "aps_frag.h" #endif #include "Common.h"  /////////////////////////////////任务注册////////////////////////////// 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   SampleApp_ProcessEvent//自己定义的任务处理函数 };  const uint8 tasksCnt = sizeof( tasksArr ) / sizeof( tasksArr[0] ); uint16 *tasksEvents;  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   SampleApp_Init( taskID );//为自己的任务添加ID }  /********************************************************************* *********************************************************************/
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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