Thread 中讨论的其他器件:CC2640、 CC2640R2L、 BLE-STACK
您好!
我已经基于 ProjectZero 示例代码开发了一个定制应用程序。 我正面临一个非常具体的问题、我不确定导致问题的原因是什么。 在整个开发过程中、我使用 Android 手机上的 NRF 连接应用进行测试。 我想将设备与 iPhone 配合使用。
与相关的 e2e 线程非常相似、如果我在 CC2640上使用 SPI 外设、iPhone 无法发现服务。 在我注释所有对 SPI_init()、SPI_open (...)的调用后 和 SPI_TRANSACTION (...) iPhone 连接正确、能够识别 BLE 服务。 我已经使用具有和不具有 SPI 函数调用的相同固件测试了 LAUNCHXL_CC2640R2和 CC2640R2L 自定义电路板。 在这两种情况下、如果我有 SPI 函数调用、Android 设备工作正常、iPhone ->无法找到图像中所示的服务。 一旦我从固件中删除 SPI 函数调用、iPhone 就可以发现 BLE 服务、Android 设备也能正常工作。 由于评估板和定制板上的行为相同、因此这不应是硬件问题。
我的 Android 手机从未遇到过这样的问题。

图 1.尝试使用 SPI 功能通过 iPhone 上的 NRF 连接应用程序进行连接;显示无服务

图 2.尝试通过 iPhone 上的 NRF 连接应用程序进行连接而不使用 SPI 功能;正确显示服务

图 3.我正在使用的 iPhone 的详细信息;iOS 版本14.6、iPhone X
我假设 SDK 中的 BLE 堆栈存在一些限制。 请告诉我是什么导致了这个问题、以及如何解决这个问题。 谢谢。
我使用的是 Simplelink SDK 版本4.40和 TI 编译器版本20.2.3.LTS
