SIM800L空白短信问题

时间:2017-11-30 15:29:27

标签: character-encoding embedded sms at-command sim800

我正在使用带有Texas Instrument Launchpad的SIM800L module和一个MSP430G2553微控制器,不使用SIM800L的外部库。

问题陈述: 发送简单文本消息(带文本模式的SMS),在手机上作为空白消息接收。

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以及Data Coding Scheme section,了解如何在适合/相关的AT命令中处理文本编码(AT + CSMP)。

  • 各种论坛,包括非常普遍使用SIM800L模块的arduino论坛。

Stackoverflow上的相关帖子:

第一个答案似乎对他有用,但对我来说并没有用。

我尝试了什么:

  • 我使用了与Docklight串行终端实例相同的模块。从我的手机收到从Docklight发送的短信,并按预期显示,而不是空白。

  • 在第0天,在将模块与Launchpad硬件集成之前,我已经使用SIM800L的预期响应的精确副本测试了整个固件状态机。

  • 除了一些初始配置外,两张SIM卡的结果都是一样的,但是在我发起任何与SMS相关的任务之前,我在这两个配置中加载了一组典型的配置。

我使用的典型值是:

  • 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” - 发送空白短信

串口成功组合 :( SIM 1和SIM 2)

  • 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(Read The Fat Manual)问题。

1 个答案:

答案 0 :(得分:3)

好的,设法解决了这个问题。

根本不是SIM800L。 整个有效载荷之后是一个'\0',这是出乎意料的(我知道,我身边很穷)。连续词没有任何问题。 调试很有趣!