解析AT命令&循环缓冲区中的响应

时间:2017-05-14 06:18:30

标签: c at-command circular-buffer

我有一个PIC32MM通过UART与BT模块RN4020连接,目前正在努力配置它。它使用AT命令格式 COMMAND + CR + LF (或相应的ANSWER + CR + LF )。

首先,通过特殊信号线将模块设置为命令模式,启动后在MCU的RX线上给出“CMD \ r \ n”。我正在使用MPLAB IDE提供的默认漂亮函数,这些函数基于循环缓冲区 RX中断例程期间逐字节填充,我想我已经掌握了这个简单的原理他们是如何工作的。

甚至还提供了一个简洁的函数ReadBuffer(target string, num of bytes to read),它将从rx circ buff中给定的字节数读入给定的char数组(缓冲区,字符串)以便随后使用。

我的问题是 - 可能是等待并识别正确答案的最佳方法,然后检查并检查,这意味着模块已准备好通过TX线发送命令,发送命令。我需要在MCU中完全读取模块的答案时发出信号 - 换句话说,何时调用ReadBuffer函数所以它给了我正确的字符串,我可以肯定我打电话 ReadBuffer(my_target_string,5) my_target_string包含“CMD \ r \ n”。我不想错误地移动Head& Tail指针,弄乱了结构。某种超时是一种很好的方法,或者在CR和LF出现时创建一些指标标志和(un)设置更好吗?

提前感谢任何想法或提示。

在找到答案的答案之后,某种字符串比较可能足以检查它是否符合我的预期。 (Tricky可能是'\ 0'字符,但我会尽量记住那个。)

0 个答案:

没有答案