Other Parts Discussed in Thread: CC2340R5, ENERGYTRACE
主题中讨论的其他器件:CC2340R5、 ENERGYTRACE
你好
我想要在没有菜单的情况下自动将外设连接到中央设备。
在板(peripheral (cc2340r5)和 central (cc2340r5))已自动扫描和连接时如何连接
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Other Parts Discussed in Thread: CC2340R5, ENERGYTRACE
你好
我想要在没有菜单的情况下自动将外设连接到中央设备。
在板(peripheral (cc2340r5)和 central (cc2340r5))已自动扫描和连接时如何连接
您好、Umesh:
我建议检查 扫描和广告基础 SLA 、看看这对您来说是否是一个良好的起点。
什么不适合您?
此致、
大卫。
您好、Umesh:
我假设您正在使用 based_ble 项目、并且您已经按照 从中心到外设自动连接的线程中所述、修改了针对外围设备和中央设备的项目。
修改后的 app_central.c 可以在加电后在没有菜单的情况下开始扫描,方法是将以下内容添加到 Central_Start ()函数中。
status = BLEAppUtil_scanStart(¢ralScanStartParams);
if(status != SUCCESS)
{
// Return status value
return(status);
}
您试过吗? 到底什么是不起作用的?
此致、
大卫。
David、您好!
谢谢你的忏悔,但我已经试过这一个,但这是不可行的。
因此、当板加电时、我按下 按钮、扫描 将启动、这是预定义的、但我想在 加电后立即处理板 、同时扫描应自动启动。
现在 发生的事情 ,我将转到 tis 文件 app_menu.c 并调用 menu_start()函数。
我在下面提到了它、供您参考。
bStatus_t Menu_start()
{
bStatus_t status = SUCCESS;
#if !defined(Display_DISABLE_ALL)
MenuModule_params_t params = {
#if ( HOST_CONFIG & ( CENTRAL_CFG | OBSERVER_CFG | PERIPHERAL_CFG ) )
.mode = MenuModule_Mode_MENU_WITH_BUTTONS
#else
.mode = MenuModule_Mode_PRINTS_ONLY
#endif // #if ( HOST_CONFIG & ( CENTRAL_CFG | OBSERVER_CFG | PERIPHERAL_CFG ) )
};
#if ( HOST_CONFIG & ( CENTRAL_CFG | OBSERVER_CFG | PERIPHERAL_CFG ) )
status = MenuModule_init(&mainMenuObject, ¶ms);
#else
status = MenuModule_init(NULL, ¶ms);
if(status == SUCCESS)
{
// Print the application name
MenuModule_printf(APP_MENU_GENERAL_STATUS_LINE, 0,
MENU_MODULE_COLOR_BOLD MENU_MODULE_COLOR_CYAN
"Basic BLE" MENU_MODULE_COLOR_RESET);
}
#endif // #if ( HOST_CONFIG & ( CENTRAL_CFG | OBSERVER_CFG | PERIPHERAL_CFG ) )
#endif // #if !defined(Display_DISABLE_ALL)
return status;
}
调用函数 MenuModule_init (&mainMenuObject、¶ms)之后;然后 调用下面的函数
//*****************************************************************************
//! Globals
//*****************************************************************************
#if ( HOST_CONFIG & ( CENTRAL_CFG | PERIPHERAL_CFG ) )
// The current connection handle the menu is working with
static uint16 menuCurrentConnHandle;
#endif // #if ( HOST_CONFIG & ( CENTRAL_CFG | PERIPHERAL_CFG ) )
#if ( HOST_CONFIG & ( CENTRAL_CFG | OBSERVER_CFG ) )
// Scan Menu
const MenuModule_Menu_t scanningMenu[] =
{
{"Scan", &Menu_scanStartCB, "Scan for devices"},
{"Stop Scan", &Menu_scanStopCB, "Stop Scanning for devices"}
};
MENU_MODULE_MENU_OBJECT("Scanning Menu", scanningMenu);
#endif // #if ( HOST_CONFIG & ( CENTRAL_CFG ) )
#if ( HOST_CONFIG & ( CENTRAL_CFG | PERIPHERAL_CFG ) )
// Connection Menu
const MenuModule_Menu_t connectionMenu[] =
{
#if ( HOST_CONFIG & ( CENTRAL_CFG ) )
{"Connect", &Menu_connectCB, "Connect to a device"},
#endif // #if ( HOST_CONFIG & ( CENTRAL_CFG ) )
{"Work with", &Menu_workWithCB, "Work with a peer device"}
};
MENU_MODULE_MENU_OBJECT("Connection Menu", connectionMenu);
// Work with menu
const MenuModule_Menu_t workWithMenu[] =
{
{"Change conn phy", &Menu_connPhyCB, "1M, Coded or 2M"},
{"Param update", &Menu_paramUpdateCB, "Send connection param update req"},
{"Disconnect", &Menu_disconnectCB, "Disconnect a specific connection"}
};
MENU_MODULE_MENU_OBJECT("Work with Menu", workWithMenu);
// Phy selection menu
const MenuModule_Menu_t connPhyMenu[] =
{
{"1 Mbps", &Menu_connPhyChangeCB, ""},
{"2 Mbps", &Menu_connPhyChangeCB, ""},
{"1 & 2 Mbps", &Menu_connPhyChangeCB, ""},
{"Coded", &Menu_connPhyChangeCB, ""},
{"1 & 2 Mbps & Coded", &Menu_connPhyChangeCB, ""},
};
MENU_MODULE_MENU_OBJECT("Set Conn PHY Preference", connPhyMenu);
#endif // #if ( HOST_CONFIG & ( CENTRAL_CFG | PERIPHERAL_CFG ) )
// Main menu
#if ( HOST_CONFIG & ( CENTRAL_CFG | OBSERVER_CFG | PERIPHERAL_CFG ) )
const MenuModule_Menu_t mainMenu[] =
{
#if ( HOST_CONFIG & ( CENTRAL_CFG | OBSERVER_CFG) )
{"Scanning", &Menu_scanningCB, "Scan menu"},
#endif // #if ( HOST_CONFIG & ( CENTRAL_CFG | OBSERVER_CFG ) )
#if ( HOST_CONFIG & ( CENTRAL_CFG | PERIPHERAL_CFG ) )
{"Connection", &Menu_connectionCB, "Connection menu"},
#endif // #if ( HOST_CONFIG & ( CENTRAL_CFG | PERIPHERAL_CFG ) )
};
MENU_MODULE_MENU_OBJECT("Basic BLE Menu", mainMenu);
#endif // #if ( HOST_CONFIG & ( CENTRAL_CFG | OBSERVER_CFG | PERIPHERAL_CFG ) )
然后这个函数被称为 menu_module_menu_object ("连接菜单"、connectionMenu); 然后我 按下 按钮、扫描将开始。 但我不希望在开机时自动启动扫描。
此致、
乌梅希