从数据模式切换到命令模式后无法接收对AT命令的响应

物联网 蓝牙低功耗
2021-05-31 09:20:54

从数据模式切换回命令模式后,我在从 NINA 接收对 AT 命令的响应时遇到问题。我用了“ATS2?” 命令来检查转义字符并只收到一个 43(DEC) 作为响应,它基本上是 ASCII 中的“+”。NINA-B1 入门”手册的第 2.5 节说明如下:

“默认情况下,NINA-B1 将进入命令模式,必须重新配置以在数据模式或扩展数据模式下启动。从数据模式或扩展数据模式,可以通过将转义序列传输到命令模式来进入命令模式模块。默认情况下,转义序列为:

1. Silence 1 second
2. +++
3. Silence 1 second"

这是NINA-B1 AT 命令手册

我在我的程序中执行了上述操作,也得到了“OK”,但由于某种原因,从数据模式切换到命令模式后,NINA 不响应 AT 命令。下面是我从数据模式切换到命令模式的代码片段。

void TS_NinaDataModeToCommandMode(void){
  _delay_ms(1000);
  UART_write('+');
  UART_write('+');
  UART_write('+');
 _delay_ms(1000);
}

任何见解都会有所帮助。

1个回答

经过一段时间反复检查代码和我的逻辑,但没有运气,我终于决定探测信号并检查转义序列之前和之后的 1 秒静音的时间。看了下时间,好像沉默不到1秒,具体多少不记得了。所以我只是将上面的代码更改为以下代码并开始工作。

void TS_NinaDataModeToCommandMode(void){
  _delay_ms(1050);
  UART_write('+');
  UART_write('+');
  UART_write('+');
 _delay_ms(1050);
}

我将进一步减少延迟 1050 毫秒以降低并检查我可以使用的最佳值是多少,因为这些不是准确的延迟。我希望这有帮助!

有关更多详细信息,请访问此处的论坛讨论主题