我正在尝试通过串行使 Windows 可执行文件与 Quectel 模块通信。
该工具在第一步总是失败,即使用 AT 命令 (AT+CGMR\r) 读取模块的固件版本。
我测试了向模块发送相同的命令,使用 Putty 并输入命令,它就像一个魅力。
但是,当我在记事本中键入命令时(包括末尾的回车),然后复制文本并将其粘贴到 putty 中(我的想法是通过更快地发送命令来更接近 .exe 的行为), 2奇怪的事情发生:
1 - 在 putty 中按 Ctrl-M 发送第二个回车之前,我没有收到模块的响应。我确信该字符已从记事本复制到剪贴板... 2 - 模块未收到“AT+CGMR”而是“AT+CGMM”(这也是一个有效命令)。我测试了其他变体并得出结论,最后一个文本字符总是被倒数第二个文本字符替换。所以 AT+CDFR 给出了 AT+CDFF。AT+PILJ 给出 AT+PILL 等...我确定这是模块接收到的,因为回显模式已打开,因此模块在回答所述命令之前打印出它收到的命令。
总结一下:
通过在键盘上直接输入腻子,我得到:
AT+CGMR
SSB,V150R100C10B200SP1
SECURITY_A,V150R100C20B300SP5
PROTOCOL_A,V150R100C20B300SP5
APPLICATION_A,V150R100C20B300SP5
SECURITY_B,V150R100C20B300SP5
RADIO,Hi2115_RF0
OK
这是预期的输出。但是通过从记事本复制和粘贴完全相同的文本,我得到:
AT+CGMM
BC95GJB-02-STD
OK
而且,只有在我按下 Ctrl-M 之后。在此之前根本没有答案,所以好像模块从未收到回车。
我无法弄清楚这里发生了什么......任何帮助表示赞赏。