【发布时间】:2017-12-14 09:50:54
【问题描述】:
全部,
我正在尝试通过 SPP 配置文件与连接到微控制器的 RN4678 蓝牙芯片进行通信。
我从来没有遇到过 Android 应用程序的问题。我总是可以配对(如果未配对)、连接、向芯片发送消息和断开连接。下面是一个示例会话:
%CONNECT,AB9876543210%
%RFCOMM_OPEN%
%TEST% <-- Message sent using the keyboard ("Byte Stream Mode" option)
%RFCOMM_CLOSE%
%DISCONN%
借助 iOS 应用,我始终可以配对(如果未配对)、连接和断开连接。但是,如果我无法向芯片发送消息。下面是一个示例会话:
%LCONNECT,499B107AB1B5,1%
%LSECURED%
<-- Here I try to send a message, but it is never received
%DISCONN%
有趣的是,如果我先用安卓连接/断开,然后用iPhone/iPad连接,接收成功!!!
%LCONNECT,499B107AB1B5,1%
%LSECURED%
%TEST% <-- Yeah !!! Microcontroller receives the message
%DISCONN%
据我所知,处理的路径是一样的......换句话说:
if(msg equals "RFCOMM_OPEN" or msg equals "LSECURED")
go to state that monitors incoming messages
因此,我恳请您提出以下问题:
1 - 你遇到过类似的事情吗?你有什么提示吗? Android 应用程序可能会做哪些 iPhone 应用程序没有做的事情?我忽略或不理解什么?
2 - 您知道适用于 iOS 和 Android 的应用吗?我的意思是,由同一个人/公司设计?
如果您需要更多信息,请询问。我只是不想太“冗长”。
感谢您的帮助。
真诚地, 文森佐
【问题讨论】:
-
所以...我一直在做一些额外的阅读...看来蓝牙芯片提供了一项名为“透明 UART”的服务...如果该服务处于活动状态,微控制器将/应该收到以下状态消息:LSTREAM_OPEN(表示 BLE UART 透明流当前已打开,可以交换数据)。我现在正在研究为什么流没有打开......我不确定是否需要在蓝牙 IC 或 iOS 应用程序或两者上进行必要的更改——我们会看到......