1

全部,

我正在尝试通过 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 的应用程序?我的意思是,由同一个人/公司设计?

如果您需要更多信息,请询问。我只是不想太“冗长”。

谢谢您的帮助。

真诚的,文森佐

4

1 回答 1

0

全部,

在我的工作中,我们一直在使用两个 RN 模块:RN4677(我们从这个模块开始)和 RN4678。

该模块允许用户进入(和退出)命令模式。RN4677 允许在仍处于命令模式时与管理器进行双向通信。RN4678 不允许在仍处于命令模式时与管理器进行双向通信。

我需要做的就是退出命令模式(通过发出命令'---\r')。现在这两个模块都适用于 Windows/Android/iOS ...

总结一下:

command "$$$\r" to enter command mode
various commands, requests for settings, ...
command "---\r" to exit command mode (a must for RN4678)

现在,这两个模块都可以正常工作

我必须说...解决问题很痛苦...

真挚地,

文森佐

于 2017-07-22T17:24:05.050 回答