繁体   English   中英

我对 pyserial 发送的 AT 命令有一个空响应。 如何获得“OK”响应?

[英]I have a empty response of AT command sending by pyserial. How can I get "OK" response?

print(msg) 的响应是b' ' ,我期待“OK”响应。

import serial

ser = serial.Serial(port='COM57')
if not ser.isOpen():
    ser.open()
print('COM57 is open', ser.isOpen())
at_cmd = 'AT'
ser.write(at_cmd.encode())
msg = ser.read(2)
print(msg)
print(type(msg))
ser.close()

您需要在这里更改几件事。 正如评论中已经提到的,仅发送"AT"将无济于事。 您需要填补您在 AT 命令知识方面的空白,并区分AT 命令AT 命令行 最好的起点是阅读标准V.250中的所有第 5 章,这是 AT 命令处理的基本标准。 如果有一些你没有完全理解的东西,不要惊慌,但要确保你真的理解了语法部分(前缀 + 正文 + 终止)。

请注意,尽管评论中有建议,但 AT 命令行命令行应仅由\r而不是\r\n终止(“终止字符可能由用户选项(参数 S3)选择,默认为 CR ( IA5 0/13).",并且 S3 绝对不应从其默认值 13 更改,因此实际上您不必处理该寄存器)。

关于读取和解析响应,您需要使用适当的算法。 您需要逐个阅读字符并将这些字符组合成响应行,然后再考虑尝试解释这些字符的含义(在数据协议中也称为“框架”)。 之后,您需要检测您是否收到了最终结果代码(并可能处理中间结果代码/信息文本)。

两个答案中有更多细节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM