CCS版本:20.2.0.12__1.8.0
芯片:CC2340R52E0RGER
例程:basic_ble_LP_EM_CC2340R5_freertos_ticlang
修改配置:
1. 删除menu相关代码
2. 增加1个任务处理休眠和发起广播
相关代码如下
广播发起代码:
bStatus_t adv_restart(char *pData) { char echoPrompt[100]; size_t bytesWritten = 0; broadcasterInitAdvSet1.advData[20] = pData[0]; broadcasterInitAdvSet1.advData[21] = pData[1]; broadcasterInitAdvSet1.advData[22] = pData[2]; broadcasterInitAdvSet1.advData[23] = pData[3]; BLEAppUtil_initAdvSet(&broadcasterAdvHandle_1, &broadcasterInitAdvSet1); return BLEAppUtil_advStart(broadcasterAdvHandle_1, &broadcasterStartAdvSet1); }
广播结束发送休眠消息
void Broadcaster_AdvEventHandler(uint32 event, BLEAppUtil_msgHdr_t *pMsgData) { switch(event) { case BLEAPPUTIL_ADV_START_AFTER_ENABLE: { // MenuModule_printf(APP_MENU_ADV_EVENT, 0, "Adv status: Started - handle: " // MENU_MODULE_COLOR_YELLOW "%d" MENU_MODULE_COLOR_RESET, // ((BLEAppUtil_AdvEventData_t *)pMsgData)->pBuf->advHandle); break; } case BLEAPPUTIL_ADV_END_AFTER_DISABLE: { // MenuModule_printf(APP_MENU_ADV_EVENT, 0, "Adv status: Ended - handle: " // MENU_MODULE_COLOR_YELLOW "%d" MENU_MODULE_COLOR_RESET, // ((BLEAppUtil_AdvEventData_t *)pMsgData)->pBuf->advHandle); break; } case BLEAPPUTIL_ADV_SET_TERMINATED: { // send msg to sleep BLEAppUtil_advStop(broadcasterAdvHandle_1); ble_adv_stop_cb(); break; } default: { break; } } }
主函数与消息接收
void ble_adv_ctrl( char* pData)
{
adv_data = adv_data + 1;
adv_restart((char*)&adv_data);
}
void ble_adv_stop_cb (void)
{
// usr_ble_cb_data = 3;
xmsg[2].ucMessageID = 3;
xQueueSend( usrQueue, ( void * ) (&(xmsg[2])), 50000 );
}
void *usr_Task(void *arg)
{
....
xmsg[0].ucMessageID = 1;
sleep(3); // sleep
xQueueSend( usrQueue, ( void * ) (&(xmsg[0])), ( TickType_t ) 50000 );
for (;;)
{
if( xQueueReceive( usrQueue, &( xMsgTmp ), ( TickType_t ) 50000 ) == pdPASS )
{
cnt = cnt + 1;
sprintf(echoPrompt, "cnt %d\r\n", cnt);
UART2_write(uart, echoPrompt, strlen(echoPrompt), &bytesWritten);
sleep(10); // sleep
BLEAppUtil_invokeFunctionNoData(&ble_adv_ctrl);
// xQueueSend( usrQueue, ( void * ) (&(xmsg[0])), ( TickType_t ) 0 );
}
}
}