现发现一个问题,调试用户数据保存到SNV中,调试发现读取出来的数据全为0,无法保存到snv。请协助分析下,谢谢!
使用了osal_snv_write()和osal_snv_read()函数,访问0x80这个ID。
测试code如下,该函数也是在osal_snv_init()之后调用的:
void cc2541_MAC2snv_test(void)
{
uint8 nv_ret;
uint8 nv_data_read[128] =0;
uint8 nv_data_write[128] = 0;
uint8 ownAddress[B_ADDR_LEN];
ownAddress[0]=*(unsigned char *)(0x780E); // 直接指向指针内容
ownAddress[1]=*(unsigned char *)(0x780F);
ownAddress[2]=*(unsigned char *)(0x7810);
ownAddress[3]=XREG(0x7811); // define 函数直接读出数据
ownAddress[4]=XREG(0x7812);
ownAddress[5]=XREG(0x7813);
osal_memset(nv_data_write, 0, sizeof(nv_data_write)); //清空缓冲区后,作为接收缓冲区
nv_data_write[0]=ownAddress[0];
nv_data_write[1]=ownAddress[1];
nv_data_write[2]=ownAddress[2];
nv_data_write[3]=ownAddress[3];
nv_data_write[4]=ownAddress[4];
nv_data_write[5]=ownAddress[5];
nv_ret = osal_snv_write(0x80, 128, nv_data_write);
if(nv_ret!= NV_OPER_FAILED)
{
nv_ret = osal_snv_read(0x80, 128, nv_data_read);
}
}
Viki Shi:
推荐看一下这篇博文,SNV的使用讲的比较详细: blog.csdn.net/…/50190859
Hank Zhang:
回复 Viki Shi:
还有一个问题询问一下
IOS系统(比如IOS设置菜单中,无法搜索到CC2541设备),IOS微信小程序,无法搜索到CC2541的广播,但是IOS的APP可以搜到,安卓系统和APP中也能搜到,这什么原因导致的
我看到有人说IOS系统只能用APP才可以搜到,那IOS微信小程序为什么搜不到,有没有什么解决办法
Alvin Chen:
回复 Hank Zhang:
这是双模和单模的问题,CC2541发出的是BLE广播,你手机是双模芯片,你要用APP让他去扫描单模的BLE广播。怎么解决,你去按照APP的code去改你手机端的程序。
Hank Zhang:
回复 Viki Shi:
你好,这篇博文我看过好几遍了,也是按他说的来的,但是还是没有解决问题,还有没有其他参考或者建议,谢谢