请教GATT_Notification( uint16_t connHandle, attHandleValueNoti_t *pNoti, uint8_t authenticated ) 函数的问题

看示例中,GATT_Notification中的pNoti->pValue指针指向的是由GATT_bm_alloc申请的内存段,在由memcpy将要发送的数据拷贝到该内存段中,调试助手是可以接收到数据。

我尝试不申请内存,直接将发送缓冲区的数据指针赋给pNoti->pValue,再调用GATT_Notification发送,调试助手没有接收到任何数据。

请问GATT_Notification函数中是不是有判断发送数据内存地址的机制,只能在GATT_bm_alloc中申请的堆内存地址范围内才进行发送。

是的 ,需要使GATT_bm_alloc分配的内存,这个函数会在分配的内存头部预留一些空间,给协议栈填充相关协议数据。 


谢谢,明白了,本来想提高点效率,直接给数据地址,看样子还是底层函数不允许。


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