web-dev-qa-db-fra.com

AT + CMGS renvoie ERREUR

J'utilise le module GSM SIM900 pour me connecter à mon microcontrôleur AVR. Je l'ai testé avec FT232 pour voir la transmission des données. Le premier Micro envoie AT il répondra OK

AT OK
AT+CMGF=1 OK
AT+CMGS="+9893XXXXXX" returns ERROR and doesn't show ">"

Quelqu'un pourrait-il me conseiller quoi faire?

15
Mohammad Farahi

Commande AT+CSCS? vous répondra quel type de codage sms est utilisé. La bonne réponse est "GSM", et sinon, vous devez le définir par la commande AT+CSCS="GSM".

Et souvenez-vous de "Ctrl + Z" (pas "Entrée") comme une fin de texte sms, s'il vous plaît.

16
yuriygorskyy

Vous ne passez pas tous les paramètres à la commande.

Le format de la commande est:

AT+CMGS=<number><CR><message><CTRL-Z>

Où:

<CR> = ASCII character 13
<CTRL-Z> = ASCII character 26

Vous avez passé uniquement le nombre et sans le < [~ # ~] cr [~ # ~] > vous ne verrez pas le > note pour le message.

Exemple:

AT+CMGS="+9893XXXXXX"
> This is the message.→

La réponse est:

+CMGS:<mr>
OK

<mr> est la référence du message.

6
Kobi K

Si AT+CSCS? la commande renvoie UCS2, alors de nombreux arguments doivent être encodés sous forme de chaîne hexadécimale d'encodage UTF-16, de sorte que le numéro de téléphone deviendrait "002B0039003800390033 ...", et le texte SMS SMS aurait besoin à coder de la même manière. Si vous n'avez pas besoin du codage UCS2, alors la chose la plus simple à faire est de passer au codage GSM (ou à un autre codage de l'ensemble disponible comme indiqué par AT+CSCS=? commande)

2
lav

Parfois, le problème est le mode texte dans lequel vous vous trouvez. Entrez AT+CMGF? et vous devriez recevoir +CMGF: 1. Si vous recevez à la place +CMGF: 0, entrer AT+CMGF=1. Cela modifie le format du message du mode PDU au mode texte. Je ne sais pas exactement ce que cela signifie, mais cela a résolu mon problème.

SIM 800 AT

1
Barnaby