ludikn 发表于 2009-10-9 15:53:33

请教:SIM300以TEXT方式发送短信

SIM300在TEXT方式下发送短信,如发送:A
对方手机能收到信息,但是信息内容不正确,回来的内容是“?”号
这是什么原因呢?

n0831 发表于 2009-10-9 17:00:44

没有切换到TEXT模式吧?

ludikn 发表于 2009-10-9 17:40:40

切换应该是成功的,要不也发不出短信来,短信是能成功发出去,但是接收显示不正确(用手机接收)。
-------------
试了一下,流程大致这样:
AT+CMGF=1
AT+CMGS="1238XXXXXXX"<CR>4E2D^Z
这样的话,手机就收到“中”!(中的编码是4E2D)
------------
AT+CMGF=1
AT+CMGS="1238XXXXXXX"<CR>B^Z
这样的话,手机就收到“?”!

skype 发表于 2009-10-9 18:01:44

// 用TEXT模式发短信息流程
AT+CMGF=1\r                        // TXT模式
//AT+CSCA="+8613800512500"      // 写信息中心号码
AT+CSCS="GSM"\r                        // 字符集
AT+CMGS="+8618913179619"\r      // 写手机号
>HELLO                              // 发"HELLO"
1A                              // (ctrl-Z)以十六进制发送

n0831 发表于 2009-10-9 18:29:40

【2楼】 ludikn
TEXT模式,还可以发送汉字,你好强啊。

ludikn 发表于 2009-10-10 08:38:36

to 4楼:
试验的结果就是这样,我也非常困惑,不知原因在哪里。
to 3楼:
我的流程和你的一样。

yinjinzhong 发表于 2009-10-10 12:01:48

你有几个300的模块啊,换一个试一试!
还有你看看除了中字能发,其他的还能发吗?

按照3楼的方法应该是没有错的。

skype 发表于 2009-10-10 13:19:32

AT+CSCS="GSM"\r      // 字符集
没有看到你有选择字符集。

skype 发表于 2009-10-10 13:22:21

下面是我做的一个项目的短信息调试笔记,希望对你有帮助。
/******************************短消息命令*******************************************

// AT+CSMS 选择消息业务
AT+CSMS=0                        // SMS 的AT 命令兼容GSM 07.05 Phase 2
AT+CSMS=1                        // SMS 的AT 命令兼容GSM 07.05 Phase 2+

// AT+CMGF 选择消息格式
AT+CMGF?                         // 查询当前值
AT+CMGF=0                         // PDU: 0
AT+CMGF=1                         // TXT: 1

// AT+CMGL 列举短消息,AT+CMGF=0 PDU模式
AT+CMGL=0                        // 接收未读
AT+CMGL=1                        // 接收已读
AT+CMGL=2                        // 存储未发送
AT+CMGL=3                        // 存储已发送
AT+CMGL=4                        // 所有消息

// AT+CMGL 列举短消息,AT+CMGF=1 TXT模式,等于号后前的是字符串
AT+CMGL="REC UNREAD"                // 接收未读
AT+CMGL="REC READ"                // 接收已读
AT+CMGL="STO UNSENT"                // 存储未发送
AT+CMGL="STO SENT"                // 存储已发送
AT+CMGL="ALL"                        // 所有消息

// 删除信息
AT+CMGD=1,4                        // 删除sim卡上已发的和未发的全部短信
AT+CMGD=1,2                        // 删除已读短信

// 将消息提示该为中断方式。这样在收到短信的时候内容直接用+CMT: 提示出来,不存卡。
AT+CNMI=2,2,0,0,0

       
// 用TEXT模式发短信息流程
AT+CMGF=1\r                        // TXT模式
//AT+CSCA="+8613800512500"        // 写信息中心号码
AT+CSCS="GSM"\r                        // 字符集
AT+CMGS="+8618913179619"\r        // 写手机号
>HELLO                                // 发"HELLO"
1A                                // (ctrl-Z)以十六进制发送

// 用PDU模式发短信息流程
AT+CMGF=0\r                        // pdu模式
AT+CSCS="UCS2"\r                // 字符集
AT+CMGS=                        // 之后跟的是从短消息中心之后的所有字符长度
0891683108502105F0                // 短信息地址
11000D91683155845570F1                // 对方手机号
000800                                // 14
06                                // 要发送的数据长度
4F60597D0021                        // 数据
0x1A                                // (ctrl-Z)以十六进制发送
注: 在发送短信时,SMSC地址可以不要,用00代替。
如发送“你好!”到13554855071.代码如下:
AT+CMGF=0\r
AT+CSCS="UCS2"\r
AT+CMGS=21\r
“0011000D91683155845570F1000801064F60597D0021”
0x1A

********************************************************************************

billowtust 发表于 2009-10-10 13:24:00

建议楼主用PDU格式来发,TEXT模式好像不是所有的机型都支持收发的
不过TEXT比PDU简单,PDU编码比较麻烦一些

ludikn 发表于 2009-10-12 17:52:24

还是同样的问题,真被它弄疯了。会不会是模块的问题呢?!
在TEXT方式下竟然能发送中文,却发不了英文字符!!!!!
哪位达人能否指点一下呢。不胜感激!

skype 发表于 2009-10-12 19:07:48

// 用TEXT模式发短信息流程
AT+CMGF=1\r // TXT模式
AT+CSCS="GSM"\r // 字符集
AT+CMGS="+8618913179619"\r // 写手机号
>HELLO // 发"HELLO"
1A // (ctrl-Z)以十六进制发送

LS用上述方法试过了吗?
一共有三种方式来发送和接收SMS信息:Block Mode, Text Mode和PDU Mode。Block Mode已是昔日黄花,目前很少用了。Text Mode是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。PDU Mode被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。
LS的问题已存在几天了?为什么不咨询一下模块的生产厂家?
提示一下,如果你在短信中用到中文和ASIIC字符(包括数字0123)时,你最好用PDU模式来收发短信。

ludikn 发表于 2009-10-13 09:13:54

【11楼】 skype
-------------
你说的方法我试过了,还是一样的!纳闷!
SIM300Z就是不行,原本就是想在TEXT模式下发送ASCII字符的,发现发送不了,于是就弄个中文的编码来发送,发现竟然能发送!!!!!!
用TC35来试,正常得很!同样的处理流程!

skype 发表于 2009-10-13 13:14:54

最后一个方法,用单片机写代码发送。

ludikn 发表于 2009-10-13 15:06:25

SIM300Z就是用单片机来控制的,真是见鬼了!!!
短信是能发出去的,但接收到的都是些乱七八糟的东西,比如:污?????? 潮机????? ??敲示”?
收到这些鸟东东!!!明明是TEXT方式下的,出来这些东西!
继续摸索,继续等待高人点拨~~~~

shouwangzhe 发表于 2009-10-13 16:17:31

出现这些字符应该是乱码,
你可以再找过一个手机试试。
因为我以前做的时候发现有些手机在接收信息时不支持某些编码的

ludikn 发表于 2009-10-13 16:32:34

【15楼】 shouwangzhe
我发送的那些数据都是ASCII字符的,不是什么特别的编码。
手机已经测试了两台,都一样呢!!!

ludikn 发表于 2009-10-22 11:14:28

停了几天,继续。
还是这个问题,真烦人!!!

把SIM300Z或者SIM340Z和计算机连接,在TEXT方式下发送短信:
AT+CMGF=1

OK
AT+CSCS="GSM"

OK
AT+CMGS="+86135********"

> hello
+CMGS: 203

OK
-------------
手机收到的是:桥?
换了几个手机测试都一样
--------
如果发送的内容是:hi
手机就收到:桩
------------------------------
真是晕死了,哪位遇到过这种情况呢?能否指点一番,不胜感激!
==================================================================================
另外说明一下,在TC35下按照这样发短信却很正常!!!

xiaoxuanfeng 发表于 2010-4-25 19:49:32

sim300等模块讨论群:60595837

orange2348 发表于 2010-5-25 10:12:52

mark

rong0348 发表于 2010-5-27 11:17:35

太强悍的模块了
没遇到过类似的问题

Lilianyang 发表于 2010-5-28 16:54:00

AT+CSCS="GSM"

OK
这之后执行一下AT&W,然后再发一遍呢?

然后发完短信后;再执行一下AT+CSCS?把结果发上来

hao876474206 发表于 2011-5-3 09:50:08

mark

hanfeng000 发表于 2011-8-15 22:11:08

shit 我也遇到同样的问题呢?

wang2001511 发表于 2011-8-29 09:10:37

mark

lhjlhjtjtj 发表于 2011-11-23 09:38:15

回复【24楼】wang2001511
mark
-----------------------------------------------------------------------
页: [1]
查看完整版本: 请教:SIM300以TEXT方式发送短信