蓝牙开发

1 需求:手机给特征值写一个20字节的数据,cc2541收到后将内容存储到flash中,然后重启系统
读出flash的值,看看是否与上次写入的值相同。

2 思路:调用osal_snv_write|osal_snv_read()函数进行操作。

3 步骤 1 SimpleProfile_GetParameter()可以得到主机发送过来的值char1value,
然后将char1value通过osal_snv_write写入flash中保存下来

2 然后通过osal_snv_read()函数将flash中保存的值读出来,然后将读到的值通过
SimpleProfile_SetParameter()函数发送到手机端。


1 需求:手机给特征值写一个20字节的数据,单片机收到数据后,将值写入flash中,
再次启动时,读取flash的值,并将Flash的值放人到要修改的广播数据包中。

2 思路:主要是先实现静态改名,在静态改名的基础上进行一些修改之后,去实现动态的
那样会有条理。

3 步骤: 1 复制原有数组scanRspData[],将原有数组名中的0x14改为对后面的数据包的个数和。
使用的是类似于crc校验的方式。关键将其转换为16进制。(10进制行不行要试试。)

sum = 0; //计算CRC
for(i=0;i<19;i++)
{
sum += bt_send_back_buf[i];
}
bt_send_back_buf[19] = sum;
2 将数据存入后 可以将数组名复制给 attDeviceName[GAP_DEVICE_NAME_LEN]
其中GAP_DEVICE_NAME_LEN 可以采用刚才Crc算出的数据长度。

3 主要可以先实现步骤二在做步骤一。


1 Alt + 97 可以快速查看ascii
2 scanRspData[] 是蓝牙设备用于回复主机扫描请求的信息,或者简单理解为蓝牙设备名;而 advertData[] 就是广播内容。

原文地址:https://www.cnblogs.com/gongxianjin/p/10055010.html