nrf52832 Bluetooth Low Energy 5.x
Article directory
- nrf52832 Bluetooth Low Energy 5.x
-
- broadcast
- Features of broadcasting:
- 1. Modify the code demonstration
-
- Broadcast initialization
- Modify broadcast name
- Modify broadcast time
- Modify broadcast content and parameters
- Summarize
Broadcast
Broadcasting is the basis of low-power Bluetooth communication, broadcasting information to the outside world and waiting to be connected;
Broadcast contains device information, such as (broadcast name, service UUID, etc.)
The host initiates a connection request after searching for the broadcast.
Features of broadcasting:
Broadcast Structure
Broadcast Channel
Broadcast interval
Broadcast event classification
——————————
1. Modify code demonstration
Broadcast initialization
/**@brief Function for initializing the Advertising functionality. */ static void advertising_init(void) {<!-- --> uint32_t err_code; ble_advertising_init_t init; memset( & amp;init, 0, sizeof(init)); //Display the complete broadcast name init.advdata.name_type = BLE_ADVDATA_FULL_NAME; //Display icon: false does not display; true displays init.advdata.include_appearance = false; //Low power Bluetooth mode, does not support limited discoverable mode and BR/EDR init.advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE; //Service UUID number init.srdata.uuids_complete.uuid_cnt = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]); init.srdata.uuids_complete.p_uuids = m_adv_uuids; init.config.ble_adv_fast_enabled = true; //broadcast interval init.config.ble_adv_fast_interval = APP_ADV_INTERVAL; //broadcast timeout init.config.ble_adv_fast_timeout = APP_ADV_DURATION; //Callback function for broadcast events init.evt_handler = on_adv_evt; err_code = ble_advertising_init( & amp;m_advertising, & amp;init); APP_ERROR_CHECK(err_code); ble_advertising_conn_cfg_tag_set( & amp;m_advertising, APP_BLE_CONN_CFG_TAG); }
Modify broadcast name
Modify macro definition and modify name
#define DEVICE_NAME "ble name" /**< Name of device. Will be included in the advertising data. */
Modify broadcast time
Enter slow broadcast mode when the broadcast times out
/**@brief Function for initializing the Advertising functionality. */ static void advertising_init(void) {<!-- --> uint32_t err_code; ble_advertising_init_t init; memset( & amp;init, 0, sizeof(init)); //Display the complete broadcast name init.advdata.name_type = BLE_ADVDATA_FULL_NAME; //Display icon: false does not display; true displays init.advdata.include_appearance = false; //generally discoverable mode init.advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE; //Service UUID number init.srdata.uuids_complete.uuid_cnt = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]); init.srdata.uuids_complete.p_uuids = m_adv_uuids; init.config.ble_adv_fast_enabled = true; //broadcast interval init.config.ble_adv_fast_interval = APP_ADV_INTERVAL; //broadcast timeout init.config.ble_adv_fast_timeout = APP_ADV_DURATION;//Set to 0 to maintain broadcast mode init.config.ble_adv_slow_enabled =true; //Increase slow broadcast init.config.ble_adv_slow_interval = 1600; // Broadcast interval 1s init.config.ble_adv_slow_timeout =0; //No timeout \t\t //Callback function for broadcast events init.evt_handler = on_adv_evt; \t\t err_code = ble_advertising_init( & amp;m_advertising, & amp;init); APP_ERROR_CHECK(err_code); ble_advertising_conn_cfg_tag_set( & amp;m_advertising, APP_BLE_CONN_CFG_TAG); }
Modify broadcast content and parameters
/**@brief Function for initializing the Advertising functionality. */ static void advertising_init(void) {<!-- --> uint32_t err_code; ble_advertising_init_t init; ble_advdata_manuf_data_t my_advdata_manuf_data_t; static uint8_t my_advdata_data[27]={<!-- -->0x00,0x11,0x22,0x33,0x44}; memset( & amp;init, 0, sizeof(init)); //Display the complete broadcast name init.advdata.name_type = BLE_ADVDATA_FULL_NAME; //Display icon: false does not display; true displays init.advdata.include_appearance = false; //generally discoverable mode init.advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE; //Service UUID number init.srdata.uuids_complete.uuid_cnt = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]); init.srdata.uuids_complete.p_uuids = m_adv_uuids; //Add manufacturer data my_advdata_manuf_data_t.company_identifier =0x5257; my_advdata_manuf_data_t.data.p_data=my_advdata_data; my_advdata_manuf_data_t.data.size=5; init.advdata.p_manuf_specific_data = & amp; my_advdata_manuf_data_t; \t\t init.config.ble_adv_fast_enabled = true; //broadcast interval init.config.ble_adv_fast_interval = APP_ADV_INTERVAL; //broadcast timeout init.config.ble_adv_fast_timeout = APP_ADV_DURATION; init.config.ble_adv_slow_enabled =true; //Increase slow broadcast init.config.ble_adv_slow_interval = 1600; // Broadcast interval 1s init.config.ble_adv_slow_timeout =0; //No timeout \t\t //Callback function for broadcast events init.evt_handler = on_adv_evt; \t\t err_code = ble_advertising_init( & amp;m_advertising, & amp;init); APP_ERROR_CHECK(err_code); ble_advertising_conn_cfg_tag_set( & amp;m_advertising, APP_BLE_CONN_CFG_TAG); \t\t }
Manually stop broadcasting and start broadcasting
err_code = sd_ble_gap_adv_stop(m_advertising.adv_handle); APP_ERROR_CHECK(err_code);
err_code =ble_advertising_start( & amp;m_advertising,BLE_ADV_MODE_FAST); APP_ERROR_CHECK(err_code);
Summary
For example: The above is what we will talk about today. This article only briefly introduces the implementation and use of broadcast, and Nordic provides a large number of functions and methods that allow us to process data quickly and conveniently.