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?
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.
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
Où <mr>
est la référence du message.
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)
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.