发中文短信
CDMA发中文短消息不是采用PDU格式,而是直接发送其Unicode代码
eg . 发送中文短消息“您好”其相应Unicode编码:0x60a8 0x597d
AT+WSCL=6,4<CR>
AT+CMGS="13600193264",”短消息编码长度(此处为4)”<CR>
60A8597D <ctrl-Z>
返回代码:
+CMGS:N 表示成功发出,N为序号。
注:程序中发送的时候应该是发送数据0x60,0xa8,0x59,0x7d,对于中文短消息其中的控制字符也必须用其UNCODE代码表示。消息内容的结束则以结束符来做标记,所以它的结束符也应该是UNICODE格式的。即在超级终端中用此种方式是无法发送成功的,因为从键盘键入的<ctrl-Z>并非UNICODE格式,仅ASCII码而已。在程序中正确的结束符应该是0x00 0x1a。
原文中不清楚的问题是:
到底发什么内容过去?
1. 0x600xa80x590x7d0x000x1a
2. 60a8597d001a
3. (char)0x60+(char)0xa8+(char)0x59+(char)0x7d+(char)0x00+(char)1a
经过反复实验,在wxf0204兄的指导下,终于发送成功第一个可以看到中文字的短信
要求使用第3种数据,也就是那种显示在超级终端里是乱码的那种
[注:在指定了长度的情况下,不需要添加ctrl+Z]
但是,发现还有部分数据仍然是乱码,仔细查看,发现这些字符(如(char)0xa8),在大于0x80的情况下都是乱码,于是又去猜测,搜索往串口写大于128(对应0x80)的字符,原来,要使用二进制,才能写入。
总算是搞定啦,三天时间,my god~