【问题标题】:Bluetooth SPP: Bluetooth SPP Pro (Android) vs. Microchip SmartData (iOS)蓝牙 SPP:蓝牙 SPP Pro (Android) 与 Microchip SmartData (iOS)
【发布时间】: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 应用程序或两者上进行必要的更改——我们会看到......

标签: android ios bluetooth spp


【解决方案1】:

全部,

在我的工作中,我们一直在使用两个 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)

这两个模块现在一切正常

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

此致,

文森佐

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2011-05-01
    • 2013-03-10
    相关资源
    最近更新 更多