我一直在尝试通过 AT 命令从 3g 调制解调器检查我的余额,但似乎卡住了。
设备信息如下:
制造商:高通公司
型号: M6281
修订版本: SSD_M6281A-0.0.1 1 [Oct 02 2008 07:00:00]
调制解调器具有 USSD 功能(已公布,也存在于出厂安装的仪表板中)。
我正在通过腻子连接到COM4串行端口,这是我的调制解调器应用程序端口。所有 AT 命令都工作正常,但我在通过 putty 发出以下内容时出现错误:
AT+CUSD=1,"*111#",15
这将返回一个简单的"错误"。 *111# 是我的运营商的余额检查代码。我怀疑某处存在格式错误,但我无法弄清楚在哪里。
注意:如果我发出一个空白的ussd命令:
AT+CUSD=1,"",15
然后我得到一个OK(尽管我后来得到响应+CME错误:重试操作)...但是,如果我在引号内写任何东西,它会返回"错误"。
好的,我终于找到了解决这个问题的方法。显然编码有问题。这是我所做的:
AT+CSCS="GSM" // change character set to GSM
AT+CUSD=1,"*111#",15 // Issued balance check ussd code
它现在工作正常。
默认编码是 UCS2,如果有人可以分享如何将 ussd 代码转换为 putty 中的 UCS2 编码,我将不胜感激。
您是否尝试过通过 AT+CUSD=1,"*111#" 发出请求?(不带最后一个参数)由于制造商的实施,AT cmmands 有时会有所不同。