SIM800L 无内容短信问题

8
我正在使用一款MSP430G2553微控制器的Texas Instrument Launchpad,搭配一个SIM800L模块,不使用外部库来操作SIM800L。 问题陈述: 发送一个简单的文本短信(SMS with Text Mode),在手机上接收到的是一个空白信息。 SIM卡详情: 1. SIM 1 : 位置:印度。运营商:AirTel,兼容4G的SIM卡。
2. SIM 2 : 位置:印度。运营商:Tata Docomo,兼容3G的SIM卡。 我已知的信息:
  • 固件中的UART驱动程序已经测试并且工作正常,是非轮询的中断驱动。
  • 没有添加阻塞时间延迟来替代读取AT命令响应。我只有在收到肯定确认 <CR><LF>OK<CR><LF> 的情况下才会继续进行。
  • 我通过示波器确认了Tx-Rx引脚传输和接收的数据位,一切都如预期一样,包括电压水平。

我所阅读到的内容:

  • 有一些非官方渠道(比如论坛)猜测SIM800L只支持2G。

  • (从维基百科的浅显阅读中得知)我已经阅读了GSM 3.38GSM 3.40,以及数据编码方案章节,以了解在适当/相关的AT命令(AT+CSMP)中如何处理文本编码。

  • 各种论坛,包括arduino论坛,其中SIM800L模块非常受欢迎。

Stackoverflow上的相关帖子:

第一个链接中的答案似乎对他有效,但对我无效。

我尝试过的:

  • 我已经使用了同样的模块并在Docklight串行终端上进行了测试。从Docklight发送的短信可以在我的手机上接收并正常显示,不会出现空白。

  • 在Day 0之前,我使用了与SIM800L预期响应完全相同的副本来测试整体固件状态机。

  • 两张SIM卡的结果都是相同的,除了一些初始配置,但在我开始任何与短信相关的任务之前,我都会在它们中加载一组典型的配置。

我使用的典型值包括:

  • Echo Off
  • CSMP: 17, 167, 0, 0 (我尝试过17, 167, 0, 0,但没有成功)。SIM 1的默认值为17,11,0,246,SIM 2的默认值为17,255,0,0。
  • CSCS: "IRA"

串行端口上失败的组合:(SIM 1和SIM 2)

  • CSMP: 17, 11, 0, 246 | CSCS: "IRA" - 发送空白短信
  • CSMP: 17, 11, 0, 246 | CSCS: "GSM" - 发送空白短信
  • CSMP: 17, 11, 0, 246 | CSCS: "HEX" - 发送空白短信

串口成功组合:: (SIM1 和 SIM2)

  • CSMP: 17, 167, 0, 0 | CSCS: "IRA"
  • CSMP: 17, 167, 0, 8 | CSCS: "IRA"
  • CSMP: 17, 11, 0, 0 | CSCS: "GSM"
  • CSMP: 17, 167, 0, 0 | CSCS: "GSM"
  • CSMP: 17, 167, 0, 8 | CSCS: "GSM"
说实话,在我学习这些组合反映了什么变化之前,我凭直觉进行了一些尝试(这些组合在SIM800L用户指南中文档不全)。

有什么想法是我可能遗漏了什么?我可以考虑这更多的是RTFM(阅读完整手册)问题。

1个回答

5

好的,问题已经解决。

这与SIM800L无关。 整个有效载荷后面跟着一个'\0',这是意外的(我知道,我的问题很大)。串行终端对此没有任何问题。 调试是有趣的!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接