- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 发送过程 修改程序 发送过程
文档评论(0)