5.zigbee协议栈应用与组网11串口透传之无线_第1页
5.zigbee协议栈应用与组网11串口透传之无线_第2页
5.zigbee协议栈应用与组网11串口透传之无线_第3页
5.zigbee协议栈应用与组网11串口透传之无线_第4页
5.zigbee协议栈应用与组网11串口透传之无线_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、11.串口透传之无线1实验目的1)2)3)掌握 CC2530 串口的配置与使用掌握 SerialApp 例子的用法掌握串口透传2实验设备硬件:PC 机 EB2530(底板、仿真器:2000/XP/win7一台或者两台两套一个板、USB线)系统,IAR 8.10集成开发环境、323实验相关电路图P0_2、P0_3 配置为外设功能时:P0_2 为 RX, P0_3 为 TX. USART0 和 USART1 是串行通口,它们能够分别运行于异步 UART 模式或者同步 SPI 模式。两个 USART 具有同样的功能,可以设置在单独的 I/O 引脚。更详细的说明请参考参见 16.1 节。4实验相关寄存

2、器与通讯模型由于协议栈已封装好,大家直接配置参考即可使用串口了,非常方便。实验详解:大家学到这里应该可以独立看工程了,如果只是看的介绍,是很难有突破的,必须静下心来看程序、实验。下面就介绍实验重要部分,挥一下了。是该留出一点空间让大家自己去发打开.EB25305.zigbee协议栈应用与组网12.串口透传之无线ProjectszstackUtilitiesSerialAppCC2530DBSerialApp.eww工程。Z-Stack透传1.将命令添加到命令列表,增加协调器与终端握手的ID,分别是请求与应答.const cId_t SerialApp_ClusterListSERIALAPP_

3、MAX_CLUSTERS =SERIALAPP_CLUSTERID1, SERIALAPP_CLUSTERID2, SERIALAPP_CONNECTREQ_CLUSTER, SERIALAPP_CONNECTRSP_CLUSTER;#defiRIALAPP_MAX_CLUSTERS42.SerialApp_Init函数void SerialApp_Init( u8 task_id)halUARTCfg_t uartConfig;/串口配置结构体SerialApp_TaskID = task_id; SerialApp_RxSeq = 0 xC3;/任务ID/接收序列SleApp_NwkSe

4、= DEV_INIT;afRegister( (endPoDesc_t *)&SerialApp_epDesc ); /端口描述符RegisterForKeys( task_id );/按键事件uartConfig.configured driver.uartConfig.baudRate uartConfig.flowControl=TRUE;/ 2x30 dont care - see uart=SERIAL_APP_BAUD; FALSE;uartConfig.flowControlThreshold = SERIAL_APP_THRESH;/ 流控 uartConfig.rx.maxB

5、ufSize = SERIAL_APP_RX_SZ; / 2x30 dont care - see uart driver. uartConfig.tx.maxBufSize = SERIAL_APP_TX_SZ; / 2x30 dont care - see uart driver.uartConfig.idleTimeout= SERIAL_APP_IDLE; / 2x30 dont care - see uart driver.uartConfig.Enable= TRUE;/ 2x30 dont care - see uart driver.= SerialApp_CallBack;

6、/接收回调函数uartConfig.callBackFuncHalUARTOpen (SERIAL_APP_PORT, &uartConfig); /打开串口#if defined ( LCD_SUPPORTED )HalLcdWriteString( SerialApp, HAL_LCD_LINE_2 ); #endifZDO_RegisterForZDOMsg( SerialApp_TaskID, End_Device_Bind_rsp ZDO_RegisterForZDOMsg( SerialApp_TaskID, Match_Desc_rsp );); /绑定/相关的事件3. Seri

7、alApp_ProsEvent函数U16 SerialApp_ProsEvent( u8 task_id, U16 events)(void)task_id;/entionally unreferenced parameterif ( events & SYS_EVENT_MSG )ingMSGPacket_t *MSGpkt;while(MSGpkt=(ingMSGPacket_t*)osal_msg_receive( SerialApp_TaskID ) )switch ( MSGpkt-hdr.event )caseING_MSG_CMD:SerialApp_Pro break;sMSG

8、Cmd( MSGpkt );case SifZDO_SE_CHANGE:leApp_NwkSe = (devSes_t)(MSGpkt-hdr.sus);( (S| (S| (SleApp_NwkS leApp_NwkS leApp_NwkSe= DEV_ZB_COORD) e = DEV_ROUTER)e = DEV_END_DEVICE) )/ Star HalLedSeding the periodic message in L_LED_1, HAL_LED_MODE_ON);aregularerval.if(SleApp_NwkSe != DEV_ZB_COORD)SerialApp_

9、DeviceConnect();else/ Device is no longerbreak;he networkdefault: break;osal_msg_deallocate( (u8 *)MSGpkt );return ( events SYS_EVENT_MSG );if ( events & SERIALAPP_SEND_EVT )SerialApp_Send();/串口发送return ( events SERIALAPP_SEND_EVT );if ( events & SERIALAPP_RESP_EVT )SerialApp_Resp();/串口响应return ( ev

10、ents SERIALAPP_RESP_EVT );return ( 0 );/ Discard unknown events.4. SerialApp_Send 函数sic void SerialApp_Send(void)#if SERIAL_APP_LOACK/回路测试 不会执行clusterId )/ A case/message wiserialdatablock to be transmitted on the serial port.SERIALAPP_CLUSTERID1:Store the address for/收到发送过来的数据通过串口输出到电脑显示 sending an

11、d retrying.osal_memcpy(&SerialApp_RxAddr, &(pkt-srcAddr), sizeof(afAddrType_t );seqnb = pkt-cmd.Data0;/ Keep message if not a repeat packet if ( (seqnb SerialApp_RxSeq) |/NormalWrap-around(seqnb 0 x80) ) / Transmit the data on the serial port. / 通过串口发送数据到 PC 机if(HalUARTWrite(SERIAL_APP_PORT,pkt-cmd.

12、Data+1,(pkt-cmd.DataLength-1) ) )/ Save for nexting messageSerialApp_RxSeq = seqnb;s= OTA_SUCS;elses= OTA_SER_BUSY;elses= OTA_DUP_MSG;/ Select approproiate OTA flow-control delay.delay = (s= OTA_SER_BUSY) ? SERIALAPP_NAK_DELAY :SERIALAPP_ACK_DELAY;/ Build & send OTA response message.SerialApp_RspBuf

13、0 SerialApp_RspBuf1 SerialApp_RspBuf2 SerialApp_RspBuf3=s;seqnb; LO_U HI_U16( delay );16( delay );/收到数据后,发送一个响应事件osal_set_event( SerialApp_TaskID, SERIALAPP_RESP_EVT ); osal_stop_timerEx(SerialApp_TaskID, SERIALAPP_RESP_EVT); break;/ 接到响应消息case SERIALAPP_CLUSTERID2:if (pkt-cmd.Data1 = SerialApp_TxSe

14、q) &(pkt-cmd.Data0 = OTA_SUCS)| (pkt-cmd.Data0 = OTA_DUP_MSG)SerialApp_TxLen = 0; osal_stop_timerEx(SerialApp_TaskID,SERIALAPP_SEND_EVT);else/ Re-start timeout according tay sent from other device.delay = BUILD_U16( pkt-cmd.Data2, pkt-cmd.Data3 );osal_start_timerEx( SerialApp_TaskID, SERIALAPP_SEND_EVT, delay);break;case SERIALAPP_CONNECTREQ_CLUSTER:SerialAp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论