日韩av色在线_av不卡在线观看_亚洲国产精品第一页_在线看日本不卡_色成人综合网_国产丝袜在线视频_国产精成人品localhost_国产91富婆露脸刺激对白_韩国视频一区_国产精品人成电影

當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > AT86RF231zigbee的使用一
AT86RF231zigbee的使用一
時間:2016-12-14作者:華清遠見

電路如圖所示:

其中控制芯片使用SAM3S4B,通過SPI格式(單一的SAM3S4B為主端,AT86RE231為從端)與AT86RF231進行通訊,AT86RF231是一款工業(yè)級,低電壓供電,超低功耗,方便操作,遵循IEEE802.15.4-2006 硬件標準。AT86RF231將控制信號轉(zhuǎn)換為zigbee模式的差分對信號,通過2.45Ghz的諧波濾波器2450FB15L0001濾波后接入天線與其余zigbee端點進行通訊,2450FB15L0001主要是對接受到得zigbee信號進行濾波。

Zigbee框架下編譯程序,需要進行些簡單的設置,

因為處與zigbee協(xié)議棧框架中,部分源碼被atmel,封裝起來,在man函數(shù)中,SYS_sysinit();系統(tǒng)初始化給出.h文件,而沒有具體的C代碼。這意味ZIGBEE的具體結(jié)構(gòu)核心部分不是開源的。實際中SYS_sysinit()在libBc_All_At91sam3s4c_Rf231_Iar.a中,該文件被封裝起來。

其中,對bitcloud編譯生成的是libHAL_Sam3sEkRf2xx_At91sam3s4c_64Mhz_Iar.a。 這里面即便被封住,我們可以進入bitcloud源碼內(nèi),解讀代碼,如WTD操作,HAL_InstallInterruptVector(),TimeTick_Configure()還是可以進行代碼解讀的。那對zigbee格式下的函數(shù)應該怎樣跟蹤解析代碼:例如pio.h中,PIO_Configure();無法看到C代碼的實現(xiàn)過程?梢允髽擞覔魀io.h文件(見下圖1),open containing folder,打開文件夾,找到include中的pio.h文件,可以推測出點C文件如果有,應該存在于source中。進行代碼解讀。


圖1

在下面歷程中,給出協(xié)調(diào)器和節(jié)點的實現(xiàn)。

協(xié)調(diào)器部分程序:

int main(void)
        {
                //初始化,相關(guān)系統(tǒng)配置
                SYS_SysInit();
                ..
                ..
                for(;;)
                {
                        //數(shù)據(jù)處理
                        ..
                        ..
                        SYS_RunTask();
                }
        }

SYS_SysInit();函數(shù)是系統(tǒng)的函數(shù),用來初始化系統(tǒng)的硬件;

SYS_RunTask();是調(diào)用zigbee的入口函數(shù),會調(diào)用BitCloud協(xié)議棧中的用戶應用程序,即APL_TaskHandler();

voidAPL_TaskHandler(void)
        {
                switch (appState)
                {
                        case APP_INITIAL_STATE:
                        initHardware();
                        initNetwork();
                        break;
                        case APP_JOINING_STATE:
                        startNetwork();
                        break;
                        case APP_JOINED_STATE:
                        break;
                        default:
                        break;
                }
        }

APL_TaskHandler();這個函數(shù)類似個有限狀態(tài)機,是zigbee所處狀態(tài)的處理,程序在初始化時static AppState_tappState = APP_INITIAL_STATE;

如果沒有添加入網(wǎng)絡,或者從網(wǎng)絡中斷掉,在主程序每次循環(huán)的時候,會添加入網(wǎng)絡,如果是已將處于zigbee網(wǎng)絡中,則處于APP_JOINED_STATE狀態(tài),直接退出APL_TaskHandler()函數(shù)。

我們可以看下具體狀態(tài)下的子函數(shù);

硬件初始化只是配置個LED,當zigbee網(wǎng)絡正常工作時,led1常亮狀態(tài),否認閃亮。

static void initHardware(void)
        {
                LED_Configure(APP_LED_0);
                LED_Configure(APP_LED_1);
        }

而對協(xié)調(diào)器的配置是zigbee配置的關(guān)鍵部分,下面一段代碼將本身配置為協(xié)調(diào)器,并在網(wǎng)絡中定義兩個節(jié)點。

static void initNetwork(void)
        {
                DeviceType_tdeviceType = DEVICE_TYPE_COORDINATOR; //配置成協(xié)調(diào)器
                CS_WriteParameter(CS_DEVICE_TYPE_ID, &deviceType);
                boolpredefPANID = true;
                uint16_tnwkPANID = 0x1000;
                CS_WriteParameter(CS_NWK_PREDEFINED_PANID_ID, &predefPANID);
                CS_WriteParameter(CS_NWK_PANID_ID, &nwkPANID);//add by jacky

                // 定義數(shù)據(jù)節(jié)點0
                apsDataReq.dstAddrMode = APS_SHORT_ADDRESS;
                apsDataReq.dstAddress.shortAddress = 0;
                apsDataReq.profileId = APP_PROFILE_ID;
                apsDataReq.dstEndpoint = APP_DATA_ENDPOINT;//0X20
                apsDataReq.clusterId = APP_CLUSTER_ID;
                apsDataReq.srcEndpoint = APP_DATA_ENDPOINT;//0X20
                apsDataReq.asdu = (uint8_t *)sensor_buf;
                apsDataReq.asduLength = sizeof(execute_buf);//傳輸數(shù)據(jù)
                apsDataReq.txOptions.acknowledgedTransmission = 0;
                apsDataReq.radius = 0;
                apsDataReq.APS_DataConf = apsDataReqConf;

                // 定義數(shù)據(jù)節(jié)點1
                apsDataReq1.dstAddrMode = APS_SHORT_ADDRESS;
                apsDataReq1.dstAddress.shortAddress = 0;
                apsDataReq1.profileId = APP_PROFILE_ID;
                apsDataReq1.dstEndpoint = 0x40;
                apsDataReq1.clusterId = APP_CLUSTER_ID;
                apsDataReq1.srcEndpoint = 0x40;
                apsDataReq1.asdu = (uint8_t *)execute_buf;
                apsDataReq1.asduLength = sizeof(execute_buf);//傳輸數(shù)據(jù)
                apsDataReq1.txOptions.acknowledgedTransmission = 0;
                apsDataReq1.radius = 0;
                apsDataReq1.APS_DataConf = apsDataReqConf1;

                appState = APP_JOINING_STATE;
                SYS_PostTask(APL_TASK_ID);
        }

初始化結(jié)束后會改變appState的狀態(tài),appState = APP_JOINING_STATE; 進行網(wǎng)絡的加入操作,使用SYS_PostTask(APL_TASK_ID);來投遞任務,讓系統(tǒng)再次調(diào)用APL_TaskHandler() 去執(zhí)行case APP_JOINING_STATE進而去執(zhí)行startNetwork()函數(shù)。

startNetwork()創(chuàng)建一個定時器用來控制led的亮滅來表示網(wǎng)絡的連接狀態(tài),在注冊一個網(wǎng)絡連接確認的回調(diào)函數(shù)。

static void startNetwork(void)
        {
                blinkTimer.interval = BLINK_TIMER_INTERVAL;
                blinkTimer.mode = TIMER_REPEAT_MODE;
                blinkTimer.callback = blinkTimerFired;
                HAL_StartAppTimer(&blinkTimer);
                startNetworkReq.ZDO_StartNetworkConf = ZDO_StartNetworkConf;//回調(diào)函數(shù)
                ZDO_StartNetworkReq(&startNetworkReq);
        }

回調(diào)函數(shù)中,主要是判斷zigbee網(wǎng)絡連接,連接成功,關(guān)閉定時器和注冊網(wǎng)絡節(jié)點。

static void ZDO_StartNetworkConf(ZDO_StartNetworkConf_t* conf)
        {
                HAL_StopAppTimer(&blinkTimer); //add by lht
                if (ZDO_SUCCESS_STATUS == conf->status)
                {
                        appState = APP_JOINED_STATE;
                        // 注冊網(wǎng)絡節(jié)點0
                        registerDataEndpointReq.simpleDescriptor = &dataEndpoint;
                        registerDataEndpointReq.APS_DataInd = APS_DataIndData;
                        APS_RegisterEndpointReq(&registerDataEndpointReq);

                        // 注冊網(wǎng)絡節(jié)點1
                        registerDataEndpointReq1.simpleDescriptor = &dataEndpoint1;
                        registerDataEndpointReq1.APS_DataInd = APS_DataIndData1;
                        APS_RegisterEndpointReq(&registerDataEndpointReq1);

                }
                else
                {
                        appState = APP_JOINING_STATE;
                }
                SYS_PostTask(APL_TASK_ID);
        }

zigbee數(shù)據(jù)發(fā)送函數(shù):

static void sendDataBlock(unsigned char channel)
        {
                switch(channel)
                {
                        case Sensor:
                        APS_DataReq(&apsDataReq);
                        break;
                        case Execute:
                        APS_DataReq(&apsDataReq1);
                        break;
                        default:
                        break;
                }
        }

zigbee數(shù)據(jù)接受函數(shù):

static void APS_DataIndData(APS_DataInd_t *ind) //data come from sensor module
        {
                zigbee_in_flag = 1;
                memcpy(&sensor_data[1],ind->asdu, 18);
                sensor_from_address = ind->srcAddress.shortAddress;
        }
        static void APS_DataIndData1(APS_DataInd_t *ind) //data come from excute module
        {
                memcpy(init_data,ind->asdu, 30);
                to_excute_address = ind->srcAddress.shortAddress;
                if(init_data[0] == 0xaa)
                {
                        enable_count = 1;
                        excute_open = 1;
                }
        }

在zigbee的節(jié)點函數(shù)APL_TaskHandler(),與協(xié)調(diào)器程序中多的狀態(tài)是:離開zigbee網(wǎng)絡,定義的宏是APP_LEAVE_STATE。

voidAPL_TaskHandler(void)
        {
                switch (appState)
                {
                        case APP_INITIAL_STATE:
                    &nbnbsp;   initHardware();
                        initNetwork();
                        break;
                        case APP_JOINING_STATE:
                        startNetwork();
                        break;
                        case APP_JOINED_STATE:
                        break;
                        case APP_LEAVE_STATE:
   &nbsnbsp;                    leaveNetwork();
                        break;
                        case APP_LEAVING_STATE:
                        break;
                        default:
                        break;
                }
        }

發(fā)表評論
評論列表(網(wǎng)友評論僅供網(wǎng)友表達個人看法,并不表明本站同意其觀點或證實其描述)
啊啊啊国产视频| 国产丝袜自拍| 色91精品久久久久久久久| 91在线网站视频| 亚洲欧洲美洲在线综合| 亚洲综合自拍偷拍| 国产精品99久久久久久似苏梦涵| 国产免费久久| 中文字幕 在线观看| 中文视频在线| 国产成人精品免费视频大全软件 | 亚洲成人福利| 国产1区2区| 国产成人精品亚洲精品色欲| 26uuu成人网| 天堂va欧美va亚洲va老司机| 黄色一级片在线看| 玛丽玛丽电影原版免费观看1977 | 欧美人妻一区二区| 国产精品19p| 男的插女的下面视频| 久久精品日产第一区二区三区| 亚洲2020天天堂在线观看| 日韩电影大全免费观看2023年上| 在线区一区二视频| 一区二区三区蜜桃网| 成人晚上爱看视频| 麻豆成人免费电影| 精品999网站| 日本欧美视频| 精品女人视频| 91成人小视频| 亚洲精品mv| xvideos国产在线视频| 你懂的在线网址| 特黄特色大片免费视频大全| 国内拍拍自拍视频在线观看| 乱小说欧美综合| 中文字幕久热| 熟妇人妻中文av无码| 亚洲天堂视频网| 成人免费a视频| 欧美精品一区二区蜜桃| 国产一区在线观看免费| 国产夫妻性爱视频| 免费黄色a级片| 国产免费视频传媒| jizzjizz国产精品喷水| 在线观看17c| 一区二区精品国产| 鲁丝一区鲁丝二区鲁丝三区| 国产富婆一区二区三区| 91香蕉电影院| 国产精品一二三在线| 国产国语videosex另类| 久久久久免费视频| 欧美激情精品久久久久久大尺度| 日韩在线播放一区| 原创国产精品91| 亚洲午夜精品久久久久久性色 | 国产精品青草久久| 91色.com| 国产亚洲一二三区| 国产色综合久久| 久久精品人人做人人综合| 26uuu亚洲综合色欧美| 成人性视频免费网站| 风流少妇一区二区| 深夜成人在线| 蜜桃成人365av| 中文av资源在线| 色网在线观看| 国产伦理精品| 91精品国产经典在线观看| 成人黄色图片网站| 免费精品一区| 青青草原在线亚洲| 欧美一区2区| 午夜激情一区| 亚洲一区欧美激情| 麻豆成人91精品二区三区| 国产自产v一区二区三区c| 国产乱子伦一区二区三区国色天香| 国产麻豆精品95视频| www.亚洲激情.com| 久久噜噜亚洲综合| 亚洲免费av高清| 欧美视频中文字幕在线| 欧美日韩一区小说| 亚洲视频图片小说| 一区二区三区在线观看动漫| 精品福利在线视频| 欧美三级日韩三级国产三级| 欧美精品一区二区三区高清aⅴ| 亚洲毛片在线观看.| 一道本无吗dⅴd在线播放一区 | 头脑特工队2免费完整版在线观看| 国产又粗又硬又长又爽| 午夜激情视频在线播放| 久久中文字幕无码| 亚洲熟妇av乱码在线观看| 特黄视频在线观看| 一级做a爰片性色毛片视频| av先锋资源网| 免费播放片a高清在线观看| 爆操欧美美女| 亚洲狼人综合| jlzzjlzz亚洲女人| 在线亚洲一区| 国产精品一区二区91| 国产精品美女久久久久久久网站| 亚洲电影在线播放| 日韩欧美国产三级电影视频| 麻豆一区二区在线观看| 国产精品专区第二| 日本在线一区| 中文字幕一区二区三区四区在线视频| 水蜜桃av无码| 国产成人精品一区二三区| 亚洲国产综合一区| jizzjizzjizzjizz| 尤物网址在线观看| 日本亚洲欧洲无免费码在线| 欧洲三级视频| 蜜桃av一区二区在线观看| 欧美激情一区二区三区四区| 在线精品视频小说1| 中日韩午夜理伦电影免费| 国产精品久久中文| 一区二区三区三区在线| 亚洲网中文字幕| 久久婷婷综合国产| 最近中文字幕mv免费高清电影| 91人成在线| 色偷偷色偷偷色偷偷在线视频| 日韩在线你懂的| 热久久久久久久| 亚洲色图19p| 亚洲精品一区二区三区福利| 欧美中文在线免费| 日韩 欧美 自拍| 在线观看免费视频黄| 99re国产在线| 91精彩视频| 天天影视久久综合| 欧美成人一区在线观看| 青青青爽久久午夜综合久久午夜| 亚洲三级久久久| 亚洲精品国产品国语在线| 国产精品18久久久久久首页狼 | 青青草综合网| 99麻豆久久久国产精品免费优播| 欧美日韩国产乱码电影| 91精品国产麻豆| 97国产suv精品一区二区62| 日本一区二区免费看| 欧美最猛性xxxxx免费| 国产精品欧美久久| 亚洲另类第一页| 中文字幕亚洲高清| 最新eeuss影院在线观看| av网站在线免费看推荐| 成人网18免费网站| 2017欧美狠狠色| 精品福利在线导航| 2014亚洲精品| 成年人三级黄色片| 男人的天堂av网站| 天天干天天草| 成人va天堂| 视频一区视频二区中文字幕| 欧美日韩免费观看中文| 国产综合在线看| 日本精品福利视频| 老熟妻内射精品一区| 鲁啊鲁视频在线精品| 手机电影在线观看| 国产精品www994| 亚洲综合丁香婷婷六月香| 色狠狠av一区二区三区香蕉蜜桃| 日本在线一区| 日韩在线不卡av| 国产7777| 成人在线观看免费视频| 久久精品国产77777蜜臀| 欧美在线影院一区二区| 国产精品自拍偷拍视频| 色91精品久久久久久久久| 国产精品羞羞答答在线| 亚洲人av在线| 欧美精品一区二区三区精品| 国产精品嫩草影院av蜜臀| 日韩视频免费观看| 97超碰国产精品| 青青青国产在线| av三级在线播放| 欧美老女人另类| 一区二区三区欧美亚洲| 欧美中文字幕在线视频| 亚欧美在线观看| 欧美一级性视频| 先锋影音在线资源站91| 久久婷婷久久| 欧美不卡一区二区三区四区| 国偷自产av一区二区三区小尤奈| 蜜桃无码一区二区三区| 97久精品国产片一区二区三区| 欧亚一区二区| 成人av在线网| 欧美日本国产一区| 国产精品区二区三区日本| 成人免费无遮挡无码黄漫视频| 国产成人香蕉在线视频fuz| 国产亚洲精品精品国产亚洲综合| 丁香桃色午夜亚洲一区二区三区| 亚洲天堂av网| 欧美 日韩 亚洲 一区| 精品国产www| 免费在线看a| 日韩av不卡在线观看| 日韩成人av一区| 99久久免费观看| www.久久色| 成人性生活av| 久久久久久综合| 日韩av理论片| 国产精品20p| 欧美1819sex性处18免费| 国产欧美一区二区精品久久久| 亚洲18女电影在线观看| yellow视频在线观看一区二区| 91动漫免费网站| 嫩草视频在线观看| 国产精品av一区二区| 亚洲免费视频中文字幕| 日本91av在线播放| 少妇精品一区二区| a天堂在线观看| 日韩欧美1区| 制服丝袜中文字幕亚洲| 免费日韩在线观看| 999国产精品视频免费| а√天堂8资源在线| 丁香婷婷综合五月| 97久久精品视频| 亚洲成人网在线播放| 高清日韩av| 亚洲国产二区| 亚洲国产中文字幕在线观看| 欧美色图另类小说| 午夜国产一级| 欧美午夜寂寞| 欧美日韩精品电影| 久艹在线免费观看| 全国男人的天堂天堂网| eeuss国产一区二区三区四区| 欧美性开放视频| 欧美精品欧美精品系列c| 中国女人真人一级毛片| 久久se精品一区二区| 欧美一区三区三区高中清蜜桃| 国产中文字幕精品| 91电影91视频| 免费久久久久久| 91黄色小视频| 日本一道高清一区二区三区| 男人的天堂a在线| 精品日韩电影| 亚洲精品成人少妇| 久久av日韩| 亚洲美女性生活| 一二三在线视频| 欧美男同性恋视频网站| 啪啪国产精品| 女明星视频黄又免费| 不卡中文字幕在线观看| 中文字幕在线日韩 | jizz国产免费| 国产乱码精品一区二区三区日韩精品| 国产亚洲精品福利| 久久天堂影院| 久艹在线播放| 粉色视频免费看| 美女国内精品自产拍在线播放 | 国产一级片在线| 男人的天堂av网站| 色香蕉在线观看| 精品国产自在久精品国产| 一本色道久久综合| 中文字幕在线播放| 亚洲美女综合网| 男女高潮又爽又黄又无遮挡| 怡红院精品视频| 久久精品无码一区二区三区| 色妞ww精品视频7777| 114美女做爰视频在线| 国产3级在线观看| 亚洲欧美日韩精品久久久| 久久日韩粉嫩一区二区三区| 日本成人在线网站| 色偷偷777| 欧美三级午夜理伦| 成熟了的熟妇毛茸茸| 欧美亚州一区二区三区| 中文字幕一区二区三区乱码图片 | 久久久久久蜜桃一区二区| 国产精品激情av电影在线观看| 亚洲电影一级黄| 裸体素人女欧美日韩| 亚洲v.com| 黄色成人免费观看| 97精品人人妻人人| 91免费在线观看网站| 日韩欧美的一区| 9色porny自拍视频一区二区| 亚洲婷婷影院| 日本孕妇大胆孕交无码| 99久久99热久久精品免费看| 你懂的国产视频| 欧美女同在线观看| 欧美高清视频一区| 久久综合五月天| 欧美日韩一区二区三区不卡| 国产成人综合在线| 色综合蜜月久久综合网| 欧美一区国产| 日本天堂影院在线视频| 男人精品网站一区二区三区| 一级片视频在线观看| 欧亚乱熟女一区二区在线| 国产成人免费高清视频| 国产日韩在线看| 久久亚洲国产成人| 精品美女在线观看| 亚洲国产欧美在线| 波多野结衣在线一区| 国产情侣一区| 色88久久久久高潮综合影院| 毛片在线网站| 精品av中文字幕在线毛片| 好爽好深好紧好大| 人善交vide欧美| www.好吊色| 日韩黄色在线播放| 一级片一级片一级片| 北京富婆泄欲对白| 91精品999| 99视频在线视频| 干日本少妇视频| 亚洲第一导航| 久久人人九九| 国产区欧美区日韩区| 国产日韩一区在线| 91地址最新发布| 97碰在线观看| 久久不射热爱视频精品| 亚洲人成电影网站| 欧美精品一区二区久久婷婷| 在线观看免费亚洲| 91久久久免费一区二区| 亚洲一区在线观看视频| 亚洲人成网站色在线观看| 中文字幕一区不卡| 中文字幕五月欧美| 亚洲国产成人在线| 欧美经典一区二区| 中文字幕中文乱码欧美一区二区| 欧美国产禁国产网站cc| 亚洲同性gay激情无套| 亚洲人精品午夜| 亚洲一区二区精品久久av| 欧美日韩国产一区中文午夜| 欧美日韩性视频在线| 一本大道综合伊人精品热热| 欧美在线视频不卡| 91麻豆精品国产自产在线观看一区| 欧美精品一卡二卡| 日韩美女主播在线视频一区二区三区 | 在线观看日韩专区| 欧美国产亚洲视频| 国产精品美女网站| 国产欧美日韩亚洲| 69精品丰满人妻无码视频a片| 成年人视频观看| 国产精品久久AV无码| 国产无精乱码一区二区三区| 国产精品第6页| 乱人伦中文字幕在线zone | 蜜桃无码一区二区三区| 日韩成人免费在线观看| 国产一区二区三区中文字幕| 亚洲欧美日韩精品永久在线| 九九九热视频| 成年人视频在线观看免费| av日韩电影| 成人在线丰满少妇av| 免费看欧美女人艹b| 国产精品美女久久久久aⅴ国产馆| 欧美日韩精品在线观看| 亚洲精选一区二区|