ch579m 写入dataFlash后蓝牙需要重新删除再连接

ch579m

  1. 蓝牙键鼠设备,蓝牙连接

  2. 蓝牙连接状态下修改 并写入 dataFlash 成功

  3. 关闭后重新打开设备 蓝牙连接就连不上了 报错0x13

  4. 电脑蓝牙删除设备 重新添加蓝牙设备后就正常了(有时候需要关闭蓝牙后再开)


求解为什么会有这种情况,有没有什么办法可以保持数据写入后重启设备蓝牙依旧正常

感谢

在使用蓝牙功能的时候可以查看是否开启了绑定功能,绑定会占用dataflah的最后一段地址作为存放信息用。

默认demo占用了dataflash2K中的后1K作为存储信息使用。因此可以使用前1K作为自定义信息的存放。


请问怎么查看是否开启了绑定功能呢? 另外往dataFlash写入前擦除是不是就会把这些信息给删除掉?

 也没办法部分删除吧 

求教


是指SNV功能吗?


默认HID_MOUSE是开启bond。

避开SNV区域的dataflash。

查看绑定数量:

image.png


请问怎么避开啊?

写入之前不是都要擦除吗? 
先把数据取出来再写入?


dataflash有2K,你操作前面那个1K,不要操作后面那个1K。因为后面那个1K已经作为SNV信息存放了,已经被占用了。

如果无法确定dataflash被使用的空间,可以直接用isp工具进入boot,能读到dataflash的数据。

image.png


32833da5867f95e0160a614baa8abd3.png
这是我设置的蓝牙SNV地址

蓝牙连接后 读取的dataFlash数据是

ab7b3963225bfb05aedc0cf95d3290e.png

看着是对的?


然后我测试执行了
1721356672763.png

FlashBlockErase

方法来自ch57x_flash.c

执行成功

1721356732482.png

再次读取数据

ff6a50c7ca85e03f8d674bfe6437532.png

FlashBlockErase 不是仅擦除512B吗?

就没有了? ?全局只有这个地方执行了这个操作?

请问是哪一步出问题了? 求解?


尝试后问题已经解决 


前面的问题是我别的地方有写入 使用了例程的

writeDataFlash

导致了全部的覆写

替换

FlashBlockErase

FlashWriteBuf

实现了512B的写入 并且不影响蓝牙绑定数据


感谢版主前面的答疑~



只有登录才能回复,可以选择微信账号登录