【发布时间】:2014-09-15 17:20:13
【问题描述】:
我有一个连接到 PIC18F87J11 的 GSM 模块,它们可以正常通信。我可以从微控制器发送一个 AT 命令并读回响应。但是,我必须知道响应中有多少个字符,这样我才能让 PIC 等待那么多字符。但是如果发生错误,响应长度可能会改变。处理这种情况的最佳方法是什么?
例如:
AT+CMGF=1
将导致以下响应。
\r\nOK\r\n
所以我必须告诉 PIC 等待 6 个字符。但是,如果有响应是错误消息。会是这样的。
\r\nERROR\r\n
如果我已经告诉 PIC 只等待 6 个字符,那么它会弄乱其余的字符,因此它们可能会出现在下一次我告诉 PIC 读取新 AT 命令的响应时。
自动查找行尾并处理任何错误消息的最佳方法是什么?
谢谢!
【问题讨论】:
-
欢迎来到parsing!
-
@vines:如果您想稍微扩展您的评论,它希望成为一个答案。如果您确实将您的评论升级为答案,请在此处联系我,这样我就可以回到这里投票了。
-
如何自动找到每个响应的行尾?我也进行解析,但我想知道人们是否有一种有效的方式来解析响应。如果你能一步一步地解释它会回答我的问题。
-
@Ammar 好的,我现在就做。但这需要一段时间——这个话题相当广泛:)
-
您期望响应“AT”命令的最长响应是多少?还是可以任意长?
标签: embedded microcontroller gsm at-command