欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > SYD881X读取GATT VALUE的长度

SYD881X读取GATT VALUE的长度

2024/10/24 9:27:04 来源:https://blog.csdn.net/chengdong1314/article/details/139828203  浏览:    关键词:SYD881X读取GATT VALUE的长度

SYD881X读取GATT VALUE的长度
现在具体遇到这样一个需要,机器生产后要更新profile,这个只能够通过升级4K来做,但是需要知道profile是否改变了,这个就要知道profile是否改变来决定是否要升级,这里的做法是增加一个函数:
extern uint8_t GattValueGetHdlLen(uint16_t hdl);
比如我要知道handle为0x001F对应的数据的长度是否改变了,只要这样调用函数就好了:

int main(void)
{uint8_t value_len;__disable_irq();	ble_init();  //蓝牙初始化,系统主时钟初始化64M,32K时钟初始化为LPOvalue_len=GattValueGetHdlLen(BLE_UART_NOTIFY_VALUE_HANDLE);//这个函数必须要在协议栈初始化之后调用nvic_priority();   //把串口优先级设置到最高********************dbg_printf("Syd8811_UART %s:%s %d\r\n",__DATE__ ,__TIME__,value_len);

在这里插入图片描述
代码运行后显示log如下:
在这里插入图片描述
这里删除两个字节后把TXT下载到芯片后,复位代码运行显示的长度如下:
在这里插入图片描述
在这里插入图片描述
这里显示的是26,但是实际的长度只有18,另外的8个是一些固定的头部!
到此说明可以读回长度了,注意这个功能只有在syd8811_ble_lib20240620_105101.lib这个版本才有这个函数
本文涉及到的代码和profile请从如下地址下载:https://download.csdn.net/download/chengdong1314/89459878
**后话:**傻了,只是想着客户的需求,没有想过其实可以在Verdor datas里面保存4K的版本号,这样就不用通过读取GATT这些如此复杂的方式来做判断是否要升级了.但是想过接口已经做了,为了对得起自己逝去的时间还是把这篇文章写出来!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com