簡體   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