用BlueNRG-X Flasher Utility批量烧写blueNRG-1更改MAC问题
<p>MAC location :设置的是 0x10044BCC</p><p>******FLASH OPERATION******</p>
<p>Connected N.1 device by ST Link</p>
<p>17:57:53.953: Waiting device to flash -> Device connected<br />
17:57:54.967: Device Identification -> BlueNRG-1<br />
17:57:55.674: Mass Erase Operation -> SUCCESS<br />
17:57:57.049: Device Flash Programming -> FAILED<br />
17:58:00.917: Device Disconnection ->SUCCESS</p>
<p>17:58:02.009: Flash operation finished!</p>
<p><br />
******END FLASH OPERATION******<br />
发现是写不进去的,想问下那个MAC地址写入是在那个位置的呢?麻烦大佬们了。</p>
<p></p>
<p> </p>
<p></p>
<p>#if SERVER<br />
uint8_t role = GAP_PERIPHERAL_ROLE;<br />
uint8_t bdaddr[] = {0xaa, 0x00, 0x00, 0xE1, 0x80, 0x01};<br />
<br />
#else<br />
uint8_t role = GAP_CENTRAL_ROLE;<br />
uint8_t bdaddr[] = {0xbb, 0x00, 0x00, 0xE1, 0x80, 0x02};<br />
#endif <br />
<br />
/* Configure Public address */<br />
ret = aci_hal_write_config_data(CONFIG_DATA_PUBADDR_OFFSET, CONFIG_DATA_PUBADDR_LEN, bdaddr);<br />
if(ret != BLE_STATUS_SUCCESS){<br />
printf("Setting BD_ADDR failed: 0x%02x\r\n", ret);<br />
return ret;<br />
}</p>
<p> </p>
<p>烧写是成功了,但是MAC仍然是aa, 00, 00, E1, 80, 01这个地址,用的是BLE_Examples\BLE_Chat的代码</p>
千本樱大白 发表于 2020-12-1 09:53
#if SERVER
uint8_t role = GAP_PERIPHERAL_ROLE;
uint8_t bdaddr[] = {0xaa, 0x00, 0x00, ...
<p>BlueNRG-X Flasher Utility是将你要定义的地址写到FLASH的指定位置</p>
<p>在你的代码里bdaddr使用了内存定义好的地址,所以BlueNRG-X Flasher Utility写入的地址不会使你的程序发生变化</p>
<p>如果要使用BlueNRG-X Flasher Utility烧写的地址,你的代码里要把对应FLASH地址的数据映射到bdaddr上</p>
<p>比如可以这样</p>
<p></p>
<p>然后再通过BlueNRG-X Flasher Utility烧写固件,地址才会发生变化</p>
<p></p>
littleshrimp 发表于 2020-12-7 12:42
BlueNRG-X Flasher Utility是将你要定义的地址写到FLASH的指定位置
在你的代码里bdaddr使用了内存定义 ...
<p>好的,谢谢啦</p>
<p></p> <div class='shownolgin' data-isdigest='no'>littleshrimp 发表于 2020-11-30 19:35
<p>您好,我使用BLUNRG-2,也是需要批量烧写采用Utility设置MAC地址,但是无法设置成功,可以帮忙看看什么原因吗,谢谢</p></div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <div class='shownolgin' data-isdigest='no'><p>你可以先看一下这个文档</p>
<p></p>
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>littleshrimp 发表于 2022-7-19 23:32
你可以先看一下这个文档
<p>您好,不用Utility,直接在代码里修改物理地址,也无法修改成功,这是什么原因?</p>
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>aldlkd 发表于 2022-7-20 09:50
您好,不用Utility,直接在代码里修改物理地址,也无法修改成功,这是什么原因?
<p>你用的官方例程还是自己写的代码?</p>
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>littleshrimp 发表于 2022-7-22 09:56
你用的官方例程还是自己写的代码?
<p>感谢虾哥帮忙,我们用的历程中直接修改,不过这个问题我们使用其他方式解决,通过广播数据来分辨不同蓝牙物理地址。</p>
<p>现在还有一个问题,就是我们的休眠功耗降不下来,达到了1mA</p>
<p>1.首先是休眠时仍然存在广播,我们利用aci_gap_set_non_discoverable()关闭广播,然后aci_gap_set_discoverable开启广播,但是发现无法开启广播,看了文档,进入待机状态,是不是无法通过设置的唤醒源进行唤醒,那应该如何关闭广播?</p>
<p>2.其次通过设置gpio的 Mode 来降低功耗</p>
</div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'>aldlkd 发表于 2022-7-23 08:58
感谢虾哥帮忙,我们用的历程中直接修改,不过这个问题我们使用其他方式解决,通过广播数据来分辨不同蓝牙 ...
<p>我在私信里的回复看了吗 那里有一个低功耗大赛的链接 那里有很多例程 你可以看看</p></div><script>showreplylogin();</script> <div class='shownolgin' data-isdigest='no'><p>虾哥,我看看可以吧</p>
</div><script>showreplylogin();</script>
页:
[1]