05_第5章无线射频与MAC层汇编.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05_第5章无线射频与MAC层汇编

# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5.7.4 发送过程 修改程序 将“light_switch.c”文件下的main函数修改如下: void main void //模式定义为空 uint8 appMode NONE; /***********RF配置********************/ // PANID设置 basicRfConfig.panId PAN_ID; //信道设置 basicRfConfig.channel RF_CHANNEL; //确认请求 basicRfConfig.ackRequest TRUE; #ifdef SECURITY_CCM //安全选型设置 basicRfConfig.securityKey key; #endif /***********RF配置********************/ // 硬件初始化 halBoardInit ; //hal_rf初始化 if halRfInit FAILED HAL_ASSERT FALSE ; 5.7.4 发送过程 修改程序 将“light_switch.c”文件下的main函数修改如下: //点亮LED1 halLedSet 1 ; //等待S1按下 while halButtonPushed ! HAL_BUTTON_1 ; //延时 halMcuWaitMs 350 ; //如果定义了SWIH #ifdef SWTH //模式为按键模式 appMode SWITCH; #endif //如果定义了LIHT #ifdef LIHT //模式为LIGHT模式 appMode LIGHT; #endif //如果模式为SWITCH模式,将调用appSwitch()函数 if appMode SWITCH appSwitch ; //如果为LIGHT模式,将调用appLight()函数 else if appMode LIGHT appLight ; // 如果返回错误将执行闪灯命令 HAL_ASSERT FALSE ; 5.7.4 发送过程 修改程序 基于IEEE802.15.4点对点的数据发送和接收,由于发送和接收需要符合IEEE802.15.4规范,因此在程序的编写过程中首先要定义一些结构体,比较重要的结构体有两个: RF初始化结构体basicRfCfg_t。 MAC数据帧帧头结构体basicRfPktHdr_t。 5.7.4 发送过程 修改程序 RF初始化结构体basicRfCfg_t。 typedef struct uint16 myAddr; uint16 panId; uint8 channel; uint8 ackRequest; #ifdef SECURITY_CCM uint8* securityKey; uint8* securityNonce; #endif basicRfCfg_t; 源地址信息:为16位短地址 网络PANID:16位信息 信道:取值为11~26 确认请求:1接收确认帧;0不接收 5.7.4 发送过程 修改程序 MAC数据帧帧头结构体basicRfPktHdr_t typedef struct uint8 packetLength; uint8 fcf0; uint8 fcf1; uint8 seqNumber; uint16 panId; uint16 destAddr; uint16 srcAddr; #ifdef SECURITY_CCM uint8 securityControl; uint8 frameCounter[4]; #endif basicRfPktHdr_t; 数据长度 帧控制域低字节 帧控制域高字节 帧序号 PANID 源地址和目的地址 5.7.3 发送过程 修改程序 发送过程 :在主函数中判定发送模式和接收模式,如果为发送模式,将调用appSwitch()函数发送数据,此函数的功能为实现每秒钟发送一次数据。appSwitch()函数在light_switch.c文件中。 static void appSwitch //需要发送的命令 pTxData[

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档