最近也在看蓝牙BLE的文档,感觉网上讲解的视频,教程都很多。看了一段时间还是迷迷糊糊的,于是就在淘宝上买了一块nrf52840的开发板,准备按教程文档学习下,经过几天的摸索还是有些成效的。
首先是对程序流程的理解,蓝牙广播,广播数据,增加新服务数据,服务特征,今天在增加服务特征是遇到了特征只能增加到15个,再多增加就会报错。
遇到这问题我就各种方式百度,查找问题出在哪,经过一番查找也未找到答案,就索性问了下其他人。先打开全局DEBUG,看下报错的具体问题。
问题果然变具体了。
出现这个问题,定位到了协议栈空间不够了,
0> <error> app: ERROR 4 [NRF_ERROR_NO_MEM] at ..\..\app\main.c:344PC at: 0x0002F47B<error> app: End of error report
需要在SDK_CONFIG.H文件中修改 “NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE”这个定义的大小,
把 NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 值翻倍下,
编译烧录到板子里就正常了,可以看到里面服务特征UUID增加到20个。
在官网中有找到这个说法