SIM800L空白短信问题

问题描述 投票:8回答:1

我正在使用带有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相关的任务之前,我在其中加载了一组典型的配置。

我使用的典型值是:

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

character-encoding embedded sms at-command sim800
1个回答
3
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.