c - GSM Telit GL865-QUAD AT指令,错误:314(SIM卡忙)
问题描述
我正在尝试通过带有 AT 命令的 UART 与 GSM click 模块(Telit GL865-QUAD 模块)进行通信。首先我想阅读所有收到的消息,但由于某种原因我收到错误 314,这意味着 SIM 卡正忙。来自 GSM 的其他答案都可以。
所以这是我的配置(连续发送几个 at 命令):
AT\r\n
(检查GSM)ATE0\r\n
(回声禁用)AT+CMGF=1\r\n
(设置短信文本模式)AT+IPR?\r\n
(查询当前波特率)AT+CMGL=\"ALL\"\r\n
(最后阅读所有消息)
OK
在 gsm 得到肯定 ( ) 答案后,所有命令都有 1 秒的延迟。例如:发送AT\r\n
等待OK
,然后等待 1 秒;在该延迟之后发送另一个 AT 命令。
结果:当我发送前 4 个 AT 命令时,我得到了来自 GSM 的良好响应。但在第五个之后,调制解调器返回错误 310(有时),然后是错误 314:
AT+CMGL="ALL"
+CMS ERROR: 310
AT+CMGL="ALL"
+CMS ERROR: 314\r\n
我用 2 个不同的 SIM 卡试了一下,结果是一样的。
欢迎任何想法或评论。
解决方案
首先,GE865-QUAD是老设备,建议至少更新到最新的FW版本。您可以通过发出AT+CGMR
AT 命令查询任何 GSM 调制解调器的当前固件版本。
编辑:因为你有一个非常旧的版本(10.00.144
日期为 2009/2010!)我强烈建议更新它,因为从那时起许多错误可能已经修复。您将能够从 Telit 网站获取最新版本,并通过 UART 对其进行刷新。
错误说明
您似乎获得了错误 314,有时是错误 310。
+CMEE Error: 314
表示SIM 忙,正如您的问题主题所正确说明的那样+CMEE Error: 310
表示SIM 未插入
可能的解决方案
- 首先,确保 SIM 卡已正确插入。它必须一直推入。我想你正确插入它,但必须进行检查。
- 那么,既然你说
我尝试使用 2 张 sim 卡并得到相同的结果。
我建议您检查 SIM 卡座的触点(因为您的两个 SIM 卡的电触点都不太可能)。事实上,SIM 忙状态,通常在实际读取 SIM 时达到(例如完整的电话簿)也可能意味着发生了一些不一致的操作(在这些情况下也可以显示SIM 故障消息)。
- 确保您等待足够长的时间等待 SIM 准备就绪。事实上,即使 SIM 初始化通常需要不到一秒的时间,在一些旧的 SIM 模型中也可能需要更长的时间。
Telit 提供查询 SIM 状态的命令:AT#QSS。正如AT 指南所描述的,它为任何 SIM 状态更改启用了主动消息。但它也允许通过其读取命令异步查询状态:
AT#QSS?
读取命令报告当前是否启用了主动指示 #QSS 以及 SIM 状态,格式如下:
#QSS:模式,状态
mode
#QSS
- URC的详细级别,用 . 设置AT#QSS=mode
。默认值为 0;2 启用最大详细级别。status - 当前 SIM 卡状态
0 - SIM 未插入
1 - 插入 SIM 卡
2 - SIM INSERTED 和 PIN UNLOCKED(注意:仅当 mode=2 时可用!)
3 - SIM INSERTED 和 READY(可以访问 SMS 和电话簿)(注意:仅在 mode=2 时可用!)
所以你必须等到状态 3 达到。我建议每 1/2 秒发出一次读取命令,直到达到所需的状态。在达到该状态之前发出涉及 SIM 存储的命令将导致 SIM 忙错误。
非常重要:因为 status=3 将仅在 mode=2 时显示,发出以下串联的 AT 命令以发现是否在未启用 URC 的情况下实际收到SIM INSERTED 和 READY状态:
AT#QSS=2;#QSS?;#QSS=0
这样,mode=2 就设置在 read 命令之前,以便支持完整的状态列表。然后将模式恢复为值 0,避免出现 URC。
- 确保 PIN 已插入!
SIM 卡可以用 PIN 码锁定。通过查询来验证它AT+CPIN?
。如果+CPIN: SIM Ready
你的反应是好的。否则,如果响应是+CPIN: SIM PIN
,您必须通过发出来插入 PIN 码
AT+CPIN=<PIN>
推荐阅读
- sql - 这种类型的连接称为什么连接,连接在最后是合格的?
- git - Git - 查找提交消息包含特定字符串的文件
- angular - Highstock 图表 - 我希望图表从 x 轴上的 0%(开始)位置开始
- emacs - 限制 .dir-locals.el 搜索遍历子目录
- amazon-web-services - AWS CLI - aws ec2 describe-instances 为每个 EC2 实例检索密钥对
- javascript - 在 Phaser 3 中控制动画循环
- java - 多租户配置:事务上的 StaleObjectStateException (hibernate + spring-data-jpa)
- sql - 通过 Excel VBA 进行 SQL 查询的复杂 JOIN 子句中的语法错误
- odoo - 通过控制器在记录中创建日志注释
- c - 我可以比较 2 个 SDL_Surface(它们是否相同)