1

GSM/GPRS モデムをマイクロコントローラに接続したところ、すべて正常に動作しました。ME ストレージ内のすべてのメッセージを削除する場合は、次のコマンドを使用する必要があります。

AT+CMGD=1,4

->OK

deleteflag '4' は、すべてのメッセージを削除することを示し、フラグ '1' はオーバーライドされます。ただし、ストレージが空かどうかを確認すると、次のようになります。

AT+CPMS?
+CPMS: 8,100,8,100,8,100

メモリがまだ占有されており、メッセージが削除されていないことを示しています。

私が間違っていることを誰かが知っていますか?

前もって感謝します!

4

2 に答える 2

2

CMGD コマンドを使用してメッセージを削除します。

私が見る限り、CMGR コマンドはメッセージの読み取りに使用され、削除には使用されません。

編集 (CMGD コマンドを使用していたため)

お使いのモデムが CMGD コマンドの複数のパラメータをサポートしていない可能性があります - 私の Siemens モデムはサポートしていません (サポートしている場合でも、AT コマンド セットのドキュメントに記載されていません)。1 つのコマンドですべてのメッセージを削除する代わりに、CMGL を実行して読み取りメッセージを取得し、結果を解析してインデックスを取得し、CMGD を使用して一度に 1 つずつ削除します。別の方法を見つけたら、私は興味があります。

AT+CMGD=? を使用します。パラメータの有効な値を見つけるためのコマンド。

編集 (モデムが 2 つのパラメーターで CMGD をサポートしていることを確認したため)

何が問題なのかわからない。あなたのCPMSコマンドが私の例とは異なる結果をもたらすことに気付きました:

AT+CPMS?
+CPMS: "SM",10,10,"MT",12,35,"MT",12,35

あなたのものにはストレージメモリ文字列がありません。あなたが実際に行ったコマンドは次のとおりだと思います。

AT+CPMS="ME"

ME ストレージに切り替えて CMGL コマンドを実行すると、削除されていないメッセージが一覧表示されますか?

于 2009-06-30T09:37:26.167 に答える
0

「AT+CPMS="ME"」を使用してメモリを ME に設定してから、flag=4 で削除コマンドを再試行してください。うまくいくと思います。その後、「AT + CSAS」を実行して以前の設定を保存し、削除を再試行しません。ME ストレージ領域に SMS がないため、テストできませんでした。それがうまくいったかどうか教えてください。

于 2020-12-23T01:57:27.670 に答える