All,
我正在尝试通过 SPP 配置文件与连接到微控制器的 RN4678 蓝牙芯片进行通信。
我从来没有遇到过安卓应用程序的问题。我总是可以配对(如果没有配对(、连接、向芯片发送消息和断开连接。下面是一个示例会话:
%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%
有趣的是,如果我首先使用Android连接/断开连接,然后使用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的应用程序?我的意思是,由同一个人/公司设计?
如果您需要更多信息,请询问。我只是不想太"啰嗦"。
感谢您的协助。
真诚地 文森佐
全部,
在我的工作中,我们一直在使用两个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)
现在两个模块都可以正常工作
我必须说...故障排除很痛苦...
真诚地
文森佐