我正在尝试通过通信协议修改当前设备的mac地址,发现修改完mac地址后无法进入低功耗,具体方式是将自定义的数组拷贝进NVDS_TAG_BD_ADDRESS变量中,在测试蓝牙名称修改时,该方式确认可行,具体方式是写入NVDS_TAG_DEVICE_NAME中。(注:设备在此期间并未断电,而是通过goto语句进入了代码初始的地方重新对系统进行了初始化,因为并未使用flash),具体代码如下:
memcpy(nvds_data_storage.NVDS_TAG_BD_ADDRESS,device_addr,sizeof(device_addr));
进入低功耗代码:
app_default_sleep_mode = ARCH_EXT_SLEEP_ON;
arch_set_sleep_mode(app_default_sleep_mode);
user_scheduler_reinit();
ke_timer_set(APP_TIMER_API_MES1,TASK_APP,SECOND_TIME);
经测试KE_TIMER并未启动
Device:
你好,
修改蓝牙名称和修改 MAC 地址,机制是不一样的。
修改蓝牙名称,只需要修改广播数据中的名称字段,然后关掉广播再打开广播就能修改成功。
修改 MAC 地址,需要你修改成功后,软复位系统,来使能此次修改。