BLE STM BlueNrg 特征最大尺寸和每个服务的最大特征
BLE STM BlueNrg characteristic max size and max characteristic per service
我的 BlueNRG-MS BLE 模块有两个问题,我不确定这是否是预期设计:
特征的最大大小不能超过 20 个字节。如果我创建一个特征,例如32字节长,虽然我能读完整个32字节,但是当BLE通知(更新)特性时,只传输了20字节。我找到了一些参考资料证实了这一点,但我还没有找到合理的解释。
我只能为一项服务添加 2 个特征。这看起来很奇怪,我想知道是否缺少一个限制配置参数。如果我向一项服务添加 3 个特征,则只会添加前两个。我正在使用 STM LightBlue App 进行调试。
更新:aci_gatt_add_char()
函数的return值为ERR_UNSPECIFIED_ERROR
好像还有其他人有同样的问题
https://community.st.com/s/question/0D50X00009XkYh6/another-question-about-bluenrg-errunspecifiederror
刚遇到同样的问题,不知道ST为什么这么难用。
我正在使用 Bluenrg-LP 和 BLE_SerialPort 示例项目。
我将 5 更改为 7 并设置 .chr_count = 4。现在我可以在 serial_port_chars[] 中创建 4 个特征。还使用 LightBlue App 进行了检查。
/*特征属性请求数/
#define NUM_APP_GATT_CHAR_ATTRIBUTES_CONF (7) /串口服务特性的属性*/
好的,在我的情况下,问题似乎是由 aci_gatt_add_serv()
调用的 max_attr_records
参数引起的。
到目前为止我还没有找到明确的规范,但您似乎需要 1 用于服务本身,而我的情况(设置了 CHAR_PROP_NOTIFY
标志)每个特性 +3。所以它现在有效,如果有人对如何确定 max_attr_records
有清晰的认识,请告诉我。另外,设置得太高也不行,不过我这里至今没有找到解释。
我的 BlueNRG-MS BLE 模块有两个问题,我不确定这是否是预期设计:
特征的最大大小不能超过 20 个字节。如果我创建一个特征,例如32字节长,虽然我能读完整个32字节,但是当BLE通知(更新)特性时,只传输了20字节。我找到了一些参考资料证实了这一点,但我还没有找到合理的解释。
我只能为一项服务添加 2 个特征。这看起来很奇怪,我想知道是否缺少一个限制配置参数。如果我向一项服务添加 3 个特征,则只会添加前两个。我正在使用 STM LightBlue App 进行调试。
更新:aci_gatt_add_char()
函数的return值为ERR_UNSPECIFIED_ERROR
好像还有其他人有同样的问题
https://community.st.com/s/question/0D50X00009XkYh6/another-question-about-bluenrg-errunspecifiederror
刚遇到同样的问题,不知道ST为什么这么难用。 我正在使用 Bluenrg-LP 和 BLE_SerialPort 示例项目。
我将 5 更改为 7 并设置 .chr_count = 4。现在我可以在 serial_port_chars[] 中创建 4 个特征。还使用 LightBlue App 进行了检查。
/*特征属性请求数/ #define NUM_APP_GATT_CHAR_ATTRIBUTES_CONF (7) /串口服务特性的属性*/
好的,在我的情况下,问题似乎是由 aci_gatt_add_serv()
调用的 max_attr_records
参数引起的。
到目前为止我还没有找到明确的规范,但您似乎需要 1 用于服务本身,而我的情况(设置了 CHAR_PROP_NOTIFY
标志)每个特性 +3。所以它现在有效,如果有人对如何确定 max_attr_records
有清晰的认识,请告诉我。另外,设置得太高也不行,不过我这里至今没有找到解释。