ZigBee学习三 UART通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZigBee学习三 UART通信相关的知识,希望对你有一定的参考价值。

ZigBee学习三 UART通信

本实验只对coordinator.c文件进行改动就可以实现串口的收发。

修改coordinator.c文件

 

byte GenericApp_TransID; // This is the unique message ID (counter)

afAddrType_t GenericApp_DstAddr;

unsigned char uartbuf[128];
/*********************************************************************
* LOCAL FUNCTIONS
*/
static void GenericApp_ProcessZDOMsgs( zdoIncomingMsg_t *inMsg );
static void GenericApp_HandleKeys( byte shift, byte keys );
static void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pckt );
static void GenericApp_SendTheMessage( void );

static void rxCB(uint8 port,uint8 event);

 

void GenericApp_Init( uint8 task_id )
{
  halUARTCfg_t uartConfig;
  GenericApp_TaskID = task_id;
  GenericApp_NwkState = DEV_INIT;
  GenericApp_TransID = 0;

  ... ...

  GenericApp_epDesc.simpleDesc= (SimpleDescriptionFormat_t *)&GenericApp_SimpleDesc;
  GenericApp_epDesc.latencyReq = noLatencyReqs;

  afRegister( &GenericApp_epDesc );

  uartConfig.configured   = TRUE;
  uartConfig.baudRate    = HAL_UART_BR_115200;
  uartConfig.flowControl    = FALSE;
  uartConfig.callBackFunc  = rxCB;

  //对串口进行初始化
  HalUARTOpen(0,&uartConfig);  //该函数将halUARTCfg_t类型的结构体变量作为参数,而halUARTCfg_t结构体变量包含了串口初始化相关的参数。

 

}

 

uint16 GenericApp_ProcessEvent( uint8 task_id, uint16 events )
{

  ... ...

}

static void rxCB(uint8 port,uint8 event)
{
  HalUARTRead(0,uartbuf,16);
  if(osal_memcmp(uartbuf,"www.wlwmaker.com",16))
  {
    HalUARTWrite(0,uartbuf,16);
  }
}

以上是关于ZigBee学习三 UART通信的主要内容,如果未能解决你的问题,请参考以下文章

zigbee学习深入浅出第一讲

zigbee 学习笔记

学习zigbee需要学习物理层和MAC层的协议吗?

zigbee学习

ZigBee案例笔记 - USART

zigbee学习之路:zigbee介绍