关键部分:
ble_gap_addr_t ble_mac_addr = {0};
sd_ble_gap_addr_get(&ble_mac_addr); // 先获取ble 当前mac地址
ble_mac_addr.addr[0]++; //地址加1. 或者取随机数。数组大小6位
sd_ble_gap_addr_set(&ble_mac_addr); //变更ble mac地址
使用方法:
/**@brief Application main function.
*/
int main(void)
{
bool erase_bonds;
ble_gap_addr_t ble_mac_addr = {0};
// Initialize.
//uart_init();
log_init();
timers_init();
buttons_leds_init(&erase_bonds);
power_management_init();
ble_stack_init();
gap_params_init();
gatt_init();
services_init();
advertising_init();
conn_params_init();
sd_ble_gap_addr_get(&ble_mac_addr);
ble_mac_addr.addr[0]++;
sd_ble_gap_addr_set(&ble_mac_addr);
// Start execution.
//printf("\r\nUART started.\r\n");
NRF_LOG_INFO("Debug logging for UART over RTT started.");
advertising_start();
// Enter main loop.
for (;;)
{
idle_state_handle();
}
}