SIM800L空白短信问题

Wed*_*shi 8 embedded sms character-encoding at-command sim800

我正在使用带有Texas Instrument Launchpad 的SIM800L模块,带有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,以及数据编码方案部分,了解如何在适合/相关的AT命令(AT + CSMP)中处理文本编码.

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

Stackoverflow上的相关文章:

第一个答案似乎对他有用,但对我来说不起作用.

我试过了什么:

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

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

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

我使用的典型值是:

  • 回声
  • 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)问题.

Wed*_*shi 5

好的,设法解决了问题。

这根本不是关于 SIM800L。整个有效载荷后面跟着一个'\0'出乎意料的(我知道,我这边很差)。串行术语没有任何问题。调试很有趣!