本文以一个实例来解说AT指令发送PDU短信的全过程,假如我要发送下面的短信: 
接收号码:+8613602433649 
短信内容:工作愉快! 
杭州短信中心号码:
联通:+8613010360500
移动:+8613800571500
一、短信中心号码处理:用字符串 addr 表示 
1、将短信息中心号码去掉+号,看看长度是否为偶数,如果不是,最后添加F 
即 addr = "+8613800200500" 
=> addr = "8613800200500F" 
2、将奇数位和偶数位交换。 
=> addr = "683108020005F0" 
3、将短信息中心号码前面加上字符91,91是国际化的意思 
=> addr = "91683108020005F0" 
4、算出 addr 长度,结果除2,格式化成2位的16进制字符串,16 / 2 = 8 => "08" 
=> addr = "0891683108020005F0"
二、手机号码处理:用字符串 phone 
1、将手机号码去掉+号,看看长度是否为偶数,如果不是,最后添加F 
即 phone = "+8613602433649" 
=> phone = "8613602433649F" 
2、将手机号码奇数位和偶数位交换。 
=> phone = "683106423346F9"
三、短信息部分处理:用字符串 msg 表示 
1、转字符串转换为Unicode代码,例如“工作愉快!”的unicode代码为 5DE54F5C61095FEBFF01
2、将 msg 长度除2,保留两位16进制数,即 5DE54F5C61095FEBFF01 = 20 / 2 => "0A",再加上 msg 
=> msg = "0A5DE54F5C61095FEBFF01"
四、组合 
1、手机号码前加上字符串 11000D91(1100:固定,0D:手机号码的长度,不算+号,十六进制表示,91:发送到手机为91,发送到小灵通为81), 
即 phone = "11000D91" + phone 
=> 11000D91683106423346F9 
2、手机号码后加上 000800 和刚才的短信息内容,000800也写死就可以了 
即 phone = phone + "000800" + msg 
即 11000D91683106423346F9 + 000800 + 0A5DE54F5C61095FEBFF01 
=> phone = 11000D91683106423346F90008000A5DE54F5C61095FEBFF01 
3、phone 长度除以2,格式化成2位的十进制数 
即 11000D91683106423346F90008000A5DE54F5C61095FEBFF01 => 50位 / 2 => 25
五、所以要发送的内容为
 //PDU格式发送
AT+CMGF=0 <回车>//格式选择,PDU
OK 
AT+CMGS=25<回车> //信息长度
> addr+phone <Ctrl+Z发送>//发送完PDU编码之后,在不回车的情况下以Hex的格式发送0x1A
//文本格式发送
AT+CMGF=1 <回车>//格式选择,文本
OK 
AT+CMGS=+86139xxxxxxxx<回车> //输入手机号
>ABCD1234(短信信息,回车)
hex格式下发送0x1A 
注意点:格式选择和信息发出后的换行操作
六、PDU格式在线转换链接:
http://www.multisilicon.com/blog/a22201774~/pdu.htm    

GSM模块_PDU中文格式发送短信息相关推荐

  1. gsm模块发中文短信

    用两条AT指令发中文短信 设置为PDU模式 AT+CMGF=0或1回车 //设置短信编码方式  0为PDU模式 1为TEXT模式 TEXT模式只支持字母或数字,要发中文短信,只能用PDU模式 C表达如 ...

  2. GSM模块发PDU格式短信目标手机接收不到,怎么回事?

    串口软件上显示OK,但目标地址接收不到,目标地址没写错. 提问者采纳 我觉得你AT+CMGS=长度有点问题 你看下下面的数据,然后再根据自己的情况来试一试... 输入数据0011000D9168513 ...

  3. 关于STM32与GSM模块之间简单应用

    芯片采用的是STMF407ZGT6,GSM模块使用SIM900A,据说已停产,可通过其他途径购买到.实现的功能有打固定电话,给固定号码发送短信,接听来电,挂断来电和接收短信并显示五个功能. 一.硬件准 ...

  4. Wavecom gsm 模块发送中文短信

    Wavecom gsm 模块发送中文短信 这今天被wavecom 模块发送中文短信的事搞的头大,不过最后还是成功了. 说一说整个事的过程吧! 首先说一下这个事情的背景: 我们公司有条产品线是嵌入式计算 ...

  5. 基于STM32与GSM模块发送中英文短信

    基于STM32与GSM模块发送中英文短信 最近在做毕业设计有用到GSM模块进行短信报警,模块的功能比较多这里就不介绍了,一般的拨打电话都很简单就只需要一条指令即可,发送英文短信也很简单也只要几条命令也 ...

  6. 通过GSM模块发送经纬度求救信息。

    本博客作为实验笔记,仅供学习交流.(转载请注明出处) 本实验通过GSM模块:SIM900a,实现向特定手机发送sos求救信号,并且利用GPS模块:微科VK2828U7G5LF,将经纬度信息同时发送到手 ...

  7. STM32使用GSM模块发送中英文短信(TEXT模式到PDU模式的转换)

    STM32使用GSM模块发送中英文短信(TEXT模式到PDU模式的转换) 目的是按下按键,短信发送 PDU转换网站 链接: PDU转换网站. 使用硬件: ··· 开发板:正点原子战舰V3 GSM模块: ...

  8. gsm基于linux程序,基于嵌入式Linux下GSM模块的短信收发系统设计

    摘要:移动通信中的短消息业务以其方便.可靠和价廉得到了广泛应用,本文在嵌入式Linux系统中,通过西门子MC35模块,实现了短信收发系统,该系统采用PDU短信模式,能支持中文短信.程序设计采用异步事件 ...

  9. 常见GSM模块介绍 ——刊登于《无线电》2008年10期

    GSM是Global System for Mobile Communications的缩写,意为全球移动通信系统,是世界上主要的蜂窝系统之一.GSM是基于窄带TDMA制式,允许在一个射频同时进行8组 ...

最新文章

  1. C#中string与byte[]的转换帮助类
  2. SpringCloud-Hytrix
  3. linux text mode下如何修改语言
  4. 用Matlab模拟一个缓冲区大小为10的随机排队系统
  5. Windows 10 的新 bug 可导致任意文件被覆写
  6. linux如何生成so文件,新人问个问题,莫见笑:关于如何生成so文件,大家多多捧场啊...
  7. 2017年第八届蓝桥杯 - 国赛 - C/C++大学B组 - A. 36进制
  8. 计算机二维全息图原理,三维信息加密如何使用计算全息进行
  9. mysql异常插件_【异常】诡异的mysql错误,Pagehelper插件混乱导致吗
  10. ❤️六万字《SpringMVC框架介绍—从入门到高级》(建议收藏)❤️
  11. 【应用随机过程】01. 随机过程的基本概念
  12. Excel的窗口如何冻结与拆分?
  13. sklearn-线性回归
  14. (近5w字)面向小白のVue全家桶开发电商管理系统项目总结文档
  15. open judge1.7.13
  16. android 仿qq 通讯录,Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展[图文+源码]...
  17. 详解非局部均值滤波原理以及用MATLAB源码实现
  18. CreateJS奥运五环动画
  19. STM32——NFC门禁模块(RC522)
  20. 恭喜民兴商学院黄一老师荣获资深金融经济讲师资格证书!

热门文章

  1. 摄像机出现黑边的问题
  2. Error: opening registry key 'Software\JavaSoft\Java Runtime Environment' Error: could not find java.
  3. 如何做到,Excel保护工作表、保护工作簿、限定表内某些区域禁止编辑?
  4. ximalaya音频URL解密
  5. 淮北师范大学的计算机科学与技术怎么样,淮北师范大学和安庆师范大学怎么样?两个大学哪个更好?...
  6. [转载]必读!ILRuntime来实现热更新的优与劣!
  7. 用Python做一个房价预测小工具
  8. Unity学习过程中的问题解答汇总(一)
  9. BeginPaintGetDc(转)
  10. 用户态与核心态的区别