手机AT指令 AT+CMGS发信息

AT指令集 —— EC20 4G模块短信的收发与管理(短信服务命令) 文章目录短信服务命令AT+CSMS 选择消息服务(在CDMA网络中无效)AT+CMGF 讯息格式AT+CSCA 服务中心地址(在CDMA网络中无效)AT+CPMS 首选消息存储AT+CMGL 列出短信AT+CMGD Delete MessageAT+CMGR 读短信AT+CMGS 发送短信AT+CMMS发送更多消息(在CDMA网络中无效)AT+CMGW 写消息到内存AT+CMSS 从存储发送消息 短信服务命令 AT+CSMS 选择消息服务(在CDMA网络中无效) 该命令选择消息传递服务<serv 阅读详情

 最近在忙一个手机AT指令的项目,就是电脑通过蓝牙串口(无线)发送AT指令控制手机,比如给手机接受与发送短信(AT+CMGR AT+CMGS),给手机打电话(ATD110),获取手机电话本(AT+CPBR),手机类型(AT+CGMI)····

      这2天发送短信把我整惨了,网上AT+CMGF=0
OK
AT+CMGS=18
>0011000D91683105114501F500040103414141<^Z>
+CMGS: 205
都很多这样成功··找了无数都不行,最终GOOGLE出来0011000D91683105114501F500040103414141这一串是由一套强大算法组合而成的。如下:原网址:http://industry.ccidnet.com/art/1077/20050328/824955_1.html

例如短信息中心号码为深圳 +8613800755500 

对方手机号码为 +8613612345678

要发送的信息为“中”

算法步骤:

一、地址部分,用字符串 addr 表示

1、将短信息中心号码去掉+号,看看长度是否为偶数,如果不是,最后添加F
即 addr = "+8613800755500"
=> addr = "8613800755500F"

2、将奇数位和偶数位交换。
=> addr = "683108705505F0"

3、将短信息中心号码前面加上字符91,91是国际化的意思
=> addr = "91683108705505F0"

4、算出 addr 长度,结果除2,格式化成2位的16进制字符串,16 / 2 = 8 => "08"
=> addr = "0891683108705505F0"

二、手机号码部分,用字符串 phone

1、将手机号码去掉+号,看看长度是否为偶数,如果不是,最后添加F
即 phone = "+8613612345678"
=> phone = "8613612345678F"

2、将手机号码奇数位和偶数位交换。
=> phone = "683116325476F8"

三、短信息部分,用字符串 msg 表示

1、转字符串转换为Unicode代码,例如“中”的unicode代码为 4E2D,
(好像是将中字的ASCII码分开,分别转成16进制)。因为我用DELPHI,
请vb朋友自己找例子,网上应该许多

function TfrmMain.str_Gb2UniCode( text: string ): String;
var
i,j,len:Integer;
cur:Integer;
t:String;
ws:WideString;
begin
Result:='';
ws := text;
len := Length(ws);
i := 1;
j := 0;
while i <= len do
begin
cur := ord(ws[i]);
FmtStr(t,'%4.4X',[cur]); //BCD转换
Result := Result+t;
inc(i);
//移位计数达到7位的特别处理
j := (j+1) mod 7;
end;
end;

即 msg = "中"
即 msg = str_Gb2UniCode( msg )
=> msg = "4E2D"


2、将 msg 长度除2,保留两位16进制数,即 4E2D = 4 / 2 => "02",再加上 msg
=> msg = "024E2D"

四、组合

1、手机号码前加上字符串 11000D91,这是一些PDU代码,写死就行了,感兴趣可以参考相关PDU格式说明
即 phone = "11000D91" + phone
=> 11000D9168683116325476F8

2、手机号码后加上 000800 和刚才的短信息内容,000800也写死就可以了
即 phone = phone + "000800" + msg
即 11000D9168683116325476F8 + 000800 + 024E2D 
=> phone = 11000D9168683116325476F8000800024E2D

3、phone 长度除以2,格式化成2位的十进制数
即 11000D9168683116325476F8000800024E2D => 36位 / 2 => 18

五、所以要发送的内容为
AT+CMGS=18<回车,ASCII为13>
addr+phone+<^Z>+换行回车<13和10>

即AT+CMGS=18<回车>0891683108705505F011000D91683116325476F8000800024E2D^Z换行回车

2...
从终端设备向蜂窝电话发送短消息文本是十分简单的。以下的代码片段就演示了这个过程。所使用的电话是Nokia 7100系列,并且ME (mobile equipment)是连接在计算的#1号通信端口上。

注意到Ctrl-Z是用来表示终结发送到移动设备的文本输入。

使用Visual Basic来发送SMS文本到Nokia电话:

' Set up the communications port
MSComm1.CommPort = 1 ' Com Port 1

' Set for 9600 baud, no parity, 8 data, and 1 stop bit.
MSComm1.Settings = "9600,N,8,1"

' Tell the control to read entire buffer when Input is used
MSComm1.InputLen = 0

' Open the port
MSComm1.PortOpen = True

' Send an 'AT' command to the phone
MSComm1.Output = "AT" & Chr$(13) & Chr(10)
' The phone will respond with an 'OK'

' Set up the phone for a text message
MSComm1.Output = "AT+CMGF=1" & Chr$(13) & Chr(10)
' The phone will respond with an 'OK'

' Prep for SMS, give destination type and destination address.
' Enter the destination type and destination address to prep for SMS
' e.g. AT+CMGS="+2145551212",129
MSComm1.Output = "AT+CMGS= " & Chr(34) & "+2145551212" & Chr(34) & ",129" & Chr$(13) & Chr(10) 
' The phone will return a'>' prompt, and await entry of the SMS message text.

' Now send the text to the phone and terminate with (Ctrl-Z)
MSComm1.Output = "This is a test. WOW! "
' The phone will respond with a conformation containing the 'message reference number' eg. +CMGS: 

' Close the port
MSComm1.PortOpen = False

在终端,看起来就象下面:

AT
OK
AT+CMGF=1
OK
AT+CMGS="+15127752607",129
>This is a test. WOW!
+CMGS: 49

OK
有了如上的算法:我的根据我的短信息中心号码为深圳 +8613010888500 

对方手机号码为 +8613267091950

再超级终端演示如下


手机成功接收到一条来自13267091950的"中"的短信息.

组成分析:0891683110808805F0(0891+信息中心)+11000D91+683162071959F0(手机号)+000800+024E2D 

4G模块AT指令发送中英文短信详细流程 文章目录Text 格式短信发送短信步骤1.检查SIM状态2. 发送短信AT+CMGF=1 (设置短信格式为Text)AT+CMGS="1559xxx8257"Ctrl+Z 发送PDU格式短信发送1. 检查SIM卡状态2. 处理短信中心号码处理收件人号码与中文短信内容验证 Text 格式短信发送短信步骤 收件人:+861559xxx8257 信 息:Hello World! 1.检查SIM状态 AT+CPIN? (查看SIM卡是否就绪) AT+CREG? (查看SIM卡注册状态) AT+COPS (查看 阅读详情

相关推荐

什么是AT指令

AT 指令就像是你跟智能家居设备或者通信设备(比如手机里的通信模块、智能手表里的网络模块)说话的一种 “语言”。这种 “语言” 的每个句子都以 “AT” 开头,你通过向设备发送这些特殊的句子,就能让设备做各种各样的事情。比如你想让设备给别人打电话、发短信或者查询自己的网络状态,都可以用 AT 指令来实现AT 指令通常是一行文本命令,由命令头(以 “AT” 开头)、命令操作符(如 “D” 表示拨号、“+CMGS” 表示发送短信等)和参数(如果需要)组成。AT+CGATT=1。

m0_47120688的博客 2172

AT指令短信息操作

一、英文短信 发:AT 收:OK 发:AT+CMGF=1  收:OK 发:AT+CMGS=13902433649 收:&gt; 发:data→        //test 为发送内容,→为发送符(ctrl+z,十六进制0x1A) 收:+CMGS: 54 OK 二、中文PDU短信 本文以一个实例来解说AT指令发送PDU短信的全过程,假如我要发送下面的短信: 接收号码:+8613902433649 ...

huabiaochen的博客 5584

AT指令之收发短信

收发短信1.Text模式和PDU模式2.英文短信3.中文短信4.注意: 在上一篇分析了一些常用的AT指令后,我们就可以用这些AT指令来打电话或者发短信,那么短信又分为英文短信和中文短信,英文短信比较简单,输入要发的信息就好了,但是中文短信的话就比较复杂了。 注意:在有些时候输入的AT指令是不显示的,需要用‘ate1’来显示命令。 1.Text模式和PDU模式 AT指令收发短信主要有两种模式:Text模式和PDU(Protocol data Unit,协议数据单元)模式。使用Text模式收发短信代码非常简单,

AJIEIT的博客 4554

AT发送短信时的长度计算

AT+CMGS=后边的数字为:去掉短信中心后所要发送的所有字节数。如:00 01 03 0D 91 685149008794F4 0000 发送的实际字节长度(十六进制00) 发送变换后的字符串CMGS长度为第一个00为中心号。就是00 后边的所有的字节数和

123123121 1690

【DeepSeek+Office/WPS】智能办公新时代的全新利器

DeepSeek是一家专注于通用人工智能技术研发的中国科技公司,其核心产品DeepSeek-R1是一款开源的推理大模型,专注于复杂任务的高效处理,支持智能对话、文本生成、语义理解、计算推理、代码生成与补全等多种应用场景。作为国产、免费、开源且强大的AI平台,DeepSeek不仅致力于为终端用户提供高质量的智能服务,还为开发者提供了一整套完善的技术解决方案,帮助他们快速构建和部署自己的智能应用。

2303_77200324的博客 2791

ROS 2 Slam Toolbox实战:从零跑通2D激光建图

SLAM(同步定位与地图构建)是移动机器人实现自主导航的基础技术,其核心在于通过传感器数据实时估计位姿并构建环境栅格地图。slam_toolbox作为ROS 2 Humble及后续LTS版本官方主推的2D SLAM后端,采用图优化+闭环检测架构,兼顾实时性、鲁棒性与工程可维护性。相比cartographer和hector_slam,它原生支持ROS 2、参数精简、诊断友好,特别适合硬件资源有限、缺乏IMU或深度相机的差速机器人平台。本文聚焦真实部署场景,覆盖RPLIDAR等常见2D激光雷达与TurtleBo

weixin_30596165的博客 357

手机AT指令 AT+CMGS发信息_…

原文地址:AT+CMGS发信息_编程阶段_百度空间 (转载)">手机AT指令 AT+CMGS发信息_编程阶段_百度空间 (转载)作者:鸽子 例如短信息中心号码为深圳 +8613800755500 对方手机号码为 +8613612345678 要发送的信息为“中” 算法步骤: 一、地址部分,用字符串 addr 表示 1、将短信息中心号码去掉+号,看看长度是否为偶数,如果不是,最后添加F 即

Gampt 5534

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

本文详细介绍了如何使用QJsonObject重构Qt网络API数据解析层,避免常见的JSON解析陷阱。通过安全解析模式、数据绑定和性能优化技巧,帮助开发者构建高效、健壮的解析逻辑,提升代码可维护性和可读性。特别适用于处理复杂嵌套的JSON响应数据场景。

weixin_29011667的博客 230

AT指令介绍及用法,AT 指令集合

AT指令在当代手机通讯中起着重要的作用,能够通过AT指令控制手机的许多行为,包括拨叫号码、按键控制、传真、GPRS等。西门子M55手机为我提供了很多的AT指令,网络上关于AT指令的资料也很多,我这里提取一些比较重要的做个简单解释。其他的手机也基本上通用,更详细的资料请查阅手机生产商的资料。  欲使用AT命令,可以安装微软的超级终端程序,选择好端口连接速度以后就可以正常使用了。   A

知秋一叶 5万+

NVIDIA DGX Spark实战:如何在桌面上轻松运行200B参数大模型?

本文详细介绍了如何利用NVIDIA DGX Spark在桌面端轻松运行200B参数大模型。通过实战演示,从系统初始化、模型获取部署到内存管理与性能调优,重点解析了其统一内存架构如何解决本地推理的显存瓶颈,并探讨了进行轻量化微调(如LoRA)的可能性,为AI开发者和研究团队提供了高效的本地化大模型操作方案。

weixin_29054195的博客 885

MindIE与vLLM-Ascend性能对决:Qwen3在昇腾910B上的推理效率实测

本文深度对比了昇腾910B平台上两大推理框架MindIE与vLLM-Ascend的性能表现。通过实测Qwen3系列模型,详细分析了二者在单卡、多卡场景下的推理效率、扩展性及生产环境适用性,为AI算力基础设施选型提供关键参考。

weixin_29214335的博客 1184

AT 指令集详解

AT 指令集详解 https://blog.youkuaiyun.com/yt0813/article/details/88390924 因为指导学员做3G网卡应用,需要用到AT命令.因此整理这一篇文档. 1.AT的历史与应用 1.1 AT的历史 AT命令集是由拨号调制解调器(MODEM)的发明者贺氏公司(Hayes)为了控制Modem发明的控制协议.AT是Attention的缩写,协议本身采用文本.每个命令均以AT打头,因此得名.这段历史参见 http://en.wikipedia.org/wiki/Hayes_co

宁静致远的博客 1万+

UCIE Specification详解(三)

Protocol Layer(协议层)以及Die-to-Die Adapter

Crazzy_M的博客 1762

手机AT指令集

ASCI码指令 功能 手机回答 AT回车 握手 OK ATE 简化显示 OK AT+CLCC 来电显示 OK 来电话时串口输出:RING ...

拒绝背八股文 6046

SonarQube 完整手册(2026 最新)

摘要: SonarQube是一款静态代码分析(SAST)平台,支持20+语言(如Java/Go/Python),提供Bug、漏洞、代码异味等检测,集成DevOps流水线。其架构包含服务端、扫描器和SonarLint插件。2026年四大版本:免费社区版(基础功能)、开发者版(多分支/PR分析)、企业版(合规治理)、数据中心版(高可用集群)。核心功能包括质量门禁(QualityGate)、密钥泄露检测及六大质量指标。部署推荐Docker+PostgreSQL,扫描支持Maven/CLI方式。

SmallBull的博客 670

【ROS2】机械臂MoveIt2

navigation2 专注于移动机器人的导航与定位,处理大范围空间的底盘运动;MoveIt2 专注于机械臂的操作规划,处理多关节协同的末端执行器运动。在复合机器人(如,移动机械臂)navigation2 负责移动到目标区域,MoveIt2 负责机械臂抓取。官网:https://moveit.picknik.ai/main/index.html。

郭老二 596

AT指令

AT 指令介绍 基本命令 基本用法 测试命令(Test Command)在 AT 指令后面加上“=?”即构成测试命令。例如“AT+CSCS=?”会列举出所有支持的字符集。 读取命令(Read Command)在 AT 指令后面加上“?”即构成读取命令。例如“AT+CSCS?”会列举出当前设置。 执行命令(Execute Command)一般而言在 AT 指令后加上“=”及命令参数即可。有些命令例...

ChamPly 8005

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android手机at指令集,手机AT指令集

ASCI码指令功能手机回答AT回车握手OKATE简化显示OKAT+CLCC来电显示OK来电话时串口输出:RINGAT+CLCC+CLCC: 1,1,4,0,0,"05133082087",129AT+CNMI=1,1,2设置收到短消息提示OK+CMTI:“SM”,44表示手机内短消息数量ATD05133082087;拨打05133082087电话AT+CMGL=0读取电话上全部未读过的SMS消息A...

weixin_32716541的博客 2093

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

sms cmgs pdu java_短信相关的AT指令以及信令

2017-11-16 17:40:58此次的短信AT指令和信令从以下几个方面介绍:一 . 短信AT指令的格式二 . 短信AT指令的使用(超级终端)三 . 短信AT指令在log中的查看四 . 短信modem相关信令五 . 超级终端的使用(hyper_terminal)六 . 其他短信AT指令七 . CMC ERROR 错误码一 . 短信AT指令的格式短信的编码方式有两种:text模式,pdu模式。因...

weixin_28940217的博客 804

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

AT指令 发送手机短信

一、英文短信 发:AT 收:OK 发:AT+CMGF=1 收:OK 发:AT+CMGS=13902433649 收:> 发:data→        //test 为发送内容,→为发送符(ctrl+z,十六进制0x1A) 收:+CMGS: 54 OK 二、中文PDU短信 本文以一个实例来解说AT指令发送PDU短信的全过程,假如我要发送下面的短信: 接收号码:+8613902

醉浪漫的博客 1209

linux 发送at指令,AT指令发送短信流程

一、英文短信发:AT收:OK发:AT+CMGF=1收:OK发:AT+CMGS=13902433649收:>发:data→ //test 为发送内容,→为发送符(ctrl+z,十六进制0x1A)收:+CMGS: 54 OK二、中文PDU短信本文以一个实例来解说AT指令发送PDU短信的全过程,假如我要发送下面的短信:接收号码:+8613902433649短信内容:工作愉快!短信中心...

weixin_39690391的博客 1315
上一篇: [Charset]UTF-8, UTF-16, UTF-16LE, UTF-16BE的区别
下一篇: 短信开发
GeoJava
博客等级 码龄19年 3粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值