透传模块在发送数据的过程中如何保证不会进入命令状态?



  • 现在的WIFI模块按照使用的逻辑大体上是可以分为两类的:

    • 透传模块

    • 命令模块

    那什么是透传模块?什么是命令模块?关于这个问题大家可以参考查看这个帖子:什么是透传模块?什么是命令模块?

    这里我给大家介绍的是RAK的透传模块,如:RAK415、RAK475、RAK477。这些模块默认状态下是透传模块,但是为了方便配置模块参数,也提供了辅助的AT命令供用户来使用,那就存在一个模式切换的过程。我们设计的模式切换的方法是有两种:1.通过串口发送字符串“+++”,模块会返回“U”,这时在三秒内通过串口给模块发送“U”成功后,模块会返回“OK”,即代表模块进入命令模式。2.通过模块的MODE引脚切换模块的模式。(这个方法必须使能模块的MODE脚,如何使能模块MODE脚请参考:如何使能RAK的WIFI透传模块的MODE引脚?

    那么第一种切换方法是否存在在透传数据的时候,如果我透传的数据中存在“+++U”是否就会让模块切换到命令状态这个问题,这样就会影响透传模块在使用中的体验。如何解决此种问题?

    其实用户完全不用担心这个问题会发生,我们设计这个触发机制是经过多重判定的,首先必须达到发送的一包字符串只有“+++”这三个字符,不含其它的任何字符,才可以触发我们的条件,让模块返回“U”。其次在发送完“+++”模块返回“U”后,必须在三秒内再给模块发送“U”,并且这个发送的“U”必须紧接着“+++”发送完模块返回“U”后发送,如果在这中间插入发送了其他字符也不会触发状态切换判定。最后给模块发送“U”这个字符时也是这样,必须该包中只含“U”这个字符才可以哦。这样的多重判定机制就会使在透传数据的时候如果数据中包含“+++U”这样的字符的数据也可以透传出去,不会触发切换模块模式。

    可能有较真的用户质疑如果我透传数据中就有一包是“+++”,在三秒内下一包正好就是“U”了呢?怎么办?
    这样肯定是会导致模块进入命令状态,会影响数据的透传。所以建议用户在透传数据的时候不要这么发送数据就好了,也可以让您的主控做一些判定,如果模块返回“U”的时候就发送任意非“U”的字符就可以。


登录后回复
 

与 RAK支持中心 的连接断开,我们正在尝试重连,请耐心等待