免责声明:我对 BLE 堆栈还是很陌生、所以这可能比我想象的要容易
因此我的问题如下:我真的很想知道我使用哪个函数来接收我通过 BLE 扫描仪随手机发送的 cc1350数据。
我使用"simpleBLEperipheral"作为起点。 让我解释一下我认为它是如何工作的、这样、如果我已经出错了、您就可以纠正我的问题。
-器件广播它可以执行的任务、如"simple_gatt_profile.c"中所述
-如果任务已启用"写入"选项、我可以使用手机将数据发送到设备
-如果我通过电话输入数据、我可以使用"SimpleProfile_GetParameter"读取器件上的传入数据
因此、我尝试从手机接收数据、以便能够在 UART 中打印出来。 (现在只需检查所有功能的工作原理)
下面是我尝试这样做的示例代码:
静态空 SimpleBLEPeripheral_performPeriodicTask (空){ //todo const char echoPrompt[]="test...\r\n"; UART_WRITE (UART、echoPrompt、sizeof (echoPrompt)); #ifndef feature_OAD_ONCHIP uint8_t incomming; if (SimpleProfile_GetParameter (SIMPLEPROFILE_CHAR1、incommming)==成功){ uint8_t v[1]; V[1]=输入; UART_WRITE (UART、v、sizeof (v)); } uint8_t valueToCopy; //调用以检索配置文件中第三个特征的值 if (SimpleProfile_GetParameter (SIMPLEPROFILE_CHAR3、&valueToCopy)=成功){ //调用以设置配置文件中第四个特征的值。 //请注意,如果已收到第四个特征的通知 // GATT 客户端设备启用,然后将发送通知 //每次调用此函数。 SimpleProfile_SetParameter (SIMPLEPROFILE_CHAR4、sizeof (uint8_t)、 &valueToCopy); } #endif //!feature_OAD_ONCHIP }
问题是、我的手机在遇到部件"if (SimpleProfile_GetParameter (SIMPLEPROFILE_CHAR1、&incommming)= Success)"时会断开连接。
此外、我从未收到任何数据、即使我在 BLE 扫描仪中通告的服务中键入数据也是如此。
我哪里出错了? 我的基础知识是否有问题或代码是否完全有问题?
为了测试是否由于我使用 UART 而发生、我添加了"test..."输出。 它总是打印在终端上、但之后、它就像整个东西关闭一样。
我想将 cc26xx 的 project0用作参考指南、但源代码似乎缺少。
我使用以下链接查找 project0、但该站点上的链接似乎已断开。
dev.ti.com/.../index.html
如果有人能告诉我我如何接收数据、那就太棒了。感谢您的帮助!