我试图通过AT命令通过UART与GSM点击模块(Telit 865-QUAD模块)通信。首先,我想阅读所有接收到的消息,但由于某种原因,我得到了错误314,这意味着SIM卡很忙。其他来自GSM的答案是可以的。
这就是我的配置(连续发送少量命令):
AT\r\n (检查GSM)ATE0\r\n (回波禁用)AT+CMGF=1\r\n (设置短信文本模式)AT+IPR?\r\n (查询当前波特率)AT+CMGL=\"ALL\"\r\n (最终读取所有消息)所有命令在gsm得到肯定(OK)应答后有1秒的延迟。例如:发送AT\r\n,等待OK,然后等待1秒;延迟之后,发送另一个AT命令。
结果:当我发送第一个4 AT命令时,得到了很好的响应。但在第五个调制解调器之后,调制解调器返回错误310 (有时),然后返回错误314:
AT+CMGL="ALL"
+CMS ERROR: 310
AT+CMGL="ALL"
+CMS ERROR: 314\r\n我尝试了两种不同的SIM卡,并得到了同样的结果。
欢迎任何意见或评论。
发布于 2020-01-22 08:46:11
我发现了问题所在。GSM的电源没有足够的Amps。对于GSM,你必须从电源单元提供3.3V和3A。GSM没有6.5W的功耗,如果你认为GSM总是需要3A的话。GSM的峰值电流高达2A,这就是为什么你需要更多的Amps。
发布于 2020-01-17 18:27:23
首先, an 865-QUAD是一个旧设备,所以我建议您至少将其更新到最新的FW版本。您可以通过发出AT+CGMR AT命令来查询任何GSM调制解调器的当前FW版本。
编辑:,因为您有一个非常老的版本(10.00.144是日期为2009/2010!)我强烈建议对其进行更新,因为从那时起,许多bug都可以修复。您将能够从Telit网站获得最后的版本,并通过UART闪现它。
错误解释
您似乎获得了预先执行的错误314,有时是通过错误310。
+CMEE Error: 314的意思是SIM忙碌,正如你的问题主题所正确表述的那样+CMEE Error: 310的意思是没有插入可能的解决办法
我试着用2张sim卡,得到了同样的结果。
我建议你检查SIM持有人的接触(因为这是不可能的,你的模拟人生有坏的电触点)。事实上,SIM的忙碌状态,通常是在SIM被实际阅读时达到的(例如,完整的电话簿)也可能意味着发生了一些不一致的行为(在这些情况下,SIM失败按摩也可以显示)。
Telit提供了一个查询SIM状态的命令:AT#QSS。正如在指南所描述的,它为任何SIM状态更改启用了未经请求的消息。但它还允许通过其read命令异步查询状态:
AT#QSS? Read命令报告当前是否启用了未经请求的指示#QSS,以及SIM状态,格式如下: #QSS:模式,状态 模式-使用
AT#QSS=mode设置的#QSSURC的详细级别。默认值为0;2启用最大详细级别。 状态-当前状态 0- SIM未插入 1- SIM插入 2- SIM插入和PIN解锁(注:只有在mode=2!) 3- SIM插入和准备(短信和电话簿访问是可能的)(注:只有在mode=2!)
,所以您必须等到状态3到达。,我建议每隔1/2秒发出read命令,直到达到所需的状态。在达到状态之前发出涉及SIM存储的命令将导致SIM繁忙的错误.
非常重要的:由于status=3将只在mode=2中显示,因此发出以下连接的AT命令,以便发现是否实际收到插入的status=3和就绪状态,而不启用URCs:
AT#QSS=2;#QSS?;#QSS=0这样,就可以在read命令之前设置mode=2,以便支持完整的状态列表。然后将模式还原为值0,避免出现URCs。
SIM可以用PIN代码锁定。通过查询AT+CPIN?来验证它。如果响应是+CPIN: SIM Ready,您就没事了。否则,如果响应是+CPIN: SIM PIN,则必须通过以下方式插入PIN代码
AT+CPIN=<PIN>https://stackoverflow.com/questions/59791129
复制相似问题