SIM800L 空白短信问题
SIM800L Blank SMS issue
我正在使用 SIM800L module 和 Texas Instrument Launchpad,以及 MSP430G2553 微控制器,不使用 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.38 and GSM 3.40, and the Data Coding Scheme section以了解suited/relevant AT命令(AT+CSMP)中文本编码的处理方式。
各种论坛,包括非常广泛使用 SIM800L 模块的 arduino 论坛。
Whosebug 上的相关帖子:
- How to send SMS with GSM module SIM800 and Arduino Uno?
- Sending GSM Character Set in SMS with SIM800L Module
第一个答案似乎对他有用,但对我不起作用。
我尝试了什么:
我使用了与 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(阅读胖手册)问题。
好的,问题已解决。
根本不是关于 SIM800L 的。
整个有效载荷后面跟着一个 '[=10=]'
,这是出乎意料的(我知道,我这边很差)。串行术语没有任何问题。
调试很有趣!
我正在使用 SIM800L module 和 Texas Instrument Launchpad,以及 MSP430G2553 微控制器,不使用 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.38 and GSM 3.40, and the Data Coding Scheme section以了解suited/relevant AT命令(AT+CSMP)中文本编码的处理方式。
各种论坛,包括非常广泛使用 SIM800L 模块的 arduino 论坛。
Whosebug 上的相关帖子:
- How to send SMS with GSM module SIM800 and Arduino Uno?
- Sending GSM Character Set in SMS with SIM800L Module
第一个答案似乎对他有用,但对我不起作用。
我尝试了什么:
我使用了与 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(阅读胖手册)问题。
好的,问题已解决。
根本不是关于 SIM800L 的。
整个有效载荷后面跟着一个 '[=10=]'
,这是出乎意料的(我知道,我这边很差)。串行术语没有任何问题。
调试很有趣!