資源描述:
《CC2540 BLE PeripheralBroadcaster Example(藍(lán)牙4.0從機和廣播者多角色實例)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、[置頂]?CC2540BLEPeripheralBroadcasterExample(藍(lán)牙4.0從機和廣播者多角色實例)分類:?藍(lán)牙2013-10-1921:48?440人閱讀?評論(0)?收藏?舉報CC2540BLEPeripheralBroadcaste從機和廣播多角色CC2540multiplerole目錄(?)[+]實驗環(huán)境:藍(lán)牙版本:TICC2540協(xié)議棧:1.2.1參考手冊:協(xié)議棧參考文檔TI_BLE_Software_Developer's_Guide.pdf實驗?zāi)康模簩崿F(xiàn)CC240從機在連接以后,還可以繼續(xù)以廣播者的身份廣播告知其他設(shè)備從機的存在。???
2、????????????Peripheraldevicesendingoutadvertisementswhileconnected所修改的工程:協(xié)議棧中SimpleBLEPeripheral文件夾下的SimpleBLEPeripheral.eww工程實驗現(xiàn)象:上電時,從機廣播,然后連接從機后,按鍵HAL_KEY_SW_1,切換到廣播者狀態(tài)(連接中的廣播狀態(tài)),再次搜索還是可以搜索到該設(shè)備,但是不可以連接?預(yù)編譯選項如下所示:INT_HEAP_LEN=3072HALNODEBUGOSAL_CBTIMER_NUM_TASKS=1HAL_AES_DMA=TRUEHAL_DM
3、A=TRUEPLUS_BROADCASTERHAL_LCD=TRUEHAL_LED=TRUEHAL_UART=TRUExPOWER_SAVING?需要強調(diào)的是,部分內(nèi)容需要根據(jù)自己的平臺做相應(yīng)修改?一、廣播的相關(guān)設(shè)置首先不要忘記在預(yù)編譯中加入PLUS_BROADCASTER;在peripheralBroadcaster.c文件中查看voidGAPRole_Init(uint8task_id)這個函數(shù)中確保一下設(shè)置為:gapRole_profileRole=(GAP_PROFILE_PERIPHERAL);?二、從機的相關(guān)設(shè)置1、為了方便起見,首先設(shè)置從機的廣播模式為一直
4、廣播,在simpleBLEPeripheral.c中//Limiteddiscoverablemodeadvertisesfor30.72s,andthenstops//Generaldiscoverablemodeadvertisesindefinitely?///受限廣播和?通用廣播///測試階段修改為一直廣播#ifdefined(CC2540_MINIDK)#defineDEFAULT_DISCOVERABLE_MODE????????????GAP_ADTYPE_FLAGS_LIMITED#else#defineDEFAULT_DISCOVERABLE_MODE
5、????????????GAP_ADTYPE_FLAGS_GENERAL#endif?//defined(CC2540_MINIDK)根據(jù)自己的實際情況修改為一直廣播就可以,我這里預(yù)編譯里面沒有定義CC2540_MINIDK??2、設(shè)置廣播者切換在simpleBLEPeripheral.c中找到函數(shù)staticvoidsimpleBLEPeripheral_HandleKeys(uint8shift,uint8keys)可以按照下列給HAL_KEY_SW_1做修改:?[html]?viewplaincopy1.if?(?keys?&?HAL_KEY_SW_1?)??2.
6、??{??3.????///SK_Keys?
7、=?SK_KEY_LEFT;??4.????HalUARTWrite(0,"KEY1",5);??5.????///??6.????osal_start_timerEx(?simpleBLEPeripheral_TaskID,?SBP_ADVDATA_EVT,?50?);???7.??}???需要注意的是SBP_ADVDATA_EVT事件要在simpleBLEPeripheral.h中定義:[html]?viewplaincopy1.//?Simple?BLE?Peripheral?Task?Events??2.#def
8、ine?SBP_START_DEVICE_EVT??????????????????????????????0x0001??3.#define?SBP_PERIODIC_EVT??????????????????????????????????0x0002??4.#define?SBP_ADV_IN_CONNECTION_EVT?????????????????????????0x0004???5.///??6.#define?SBP_ADVDATA_EVT???????????????????????????????????0x0008