GSM短信发送与电话等

一、英文短信
发:AT
收:OK
发:AT+CMGF=1 
收:OK
发:AT+CMGS="+8615083111880"
收:>
发:data       //data 为发送内容(enter 后以ctrl+z(0x1A)结束)
收:+CMGS: 54 OK

如果不成功,出现+CMS ERROR: 302 错误。再次发送AT+CMGF=1,AT+CMGS="+8615083111880"。出现>,然后输入短信内容

二、中文PDU短信

我用一个例子说明整个过程~

短信中心号码可以百度

北京移动 +8613800100500 北京联通 +8613010112500  
上海移动 +8613800210500 上海联通 +8613010314500  
天津移动 +8613800220500 天津联通 +8613010130500  
重庆移动 +8613800230500 重庆联通 +8613010831500  

 

    短信中心:+8613800100500
    收信号码:+8613401041516
    短信内容:我爱听评书

第一步——格式化短信中心号码
1 - 要去掉“+”号,然后看看长度要是奇数的话就在末尾追加一个“F”。
    +8613800200500 >>>> 8613800100500F
2 - 将奇数位和偶数位交换位置。
    8613800100500F >>>> 683108100005F0
3 - 在前面加上“91”,是国际化的意思。
    683108100005F0 >>>> 91683108100005F0
4 - 最后算一算它有多长了,把长度除于2,再把结果转换为2位的16进制数,加在最前面。
    91683108100005F0长16 16/2=8 8的16进制“08” 一定要注意是2位
    91683108100005F0 >>>> 0891683108100005F0
短信中心号码就处理完了,下几一步有类似的算法,现在我感觉就像做菜一样……

第二步——格式化收信号码
1 - 要去掉“+”号,然后看看长度要是奇数的话就在末尾追加一个“F”。
    +8613401041516 >>>> 8613401041516F
2 - 将奇数位和偶数位交换位置。
    8613401041516F >>>> 683104011415F6

第三步——格式化发送内容
1 - 把字符串转换为Unicode格式。(转换函数我写过了,直接拿去用好了)
    我爱听评书 >>>> 62117231542C8BC44E66
2 - 把串Unicode码的长度除于2,再把结果转换为2位的16进制数,加在最前面。
    62117231542C8BC44E66长20 20/2=10 10的16进制“0A”
    62117231542C8BC44E66 >>>> 0A62117231542C8BC44E66

先看看我们都准备什么了,再继续~
    格式化后的短信中心:0891683108100005F0
    格式化后的收信号码:683104011415F6
    格式化后的发送内容:0A62117231542C8BC44E66

第四步——组合处理
1 - 算一下收信号码的长度,不包括“+”号。这个收信号码指的是+8613401041516,而不是683104011415F6。
    +8613401041516 >>>> 8613401041516 长度为“OD”(2位16进制数表示)
2 - 在长度前后分别加“1100”。
    OD >>>> 1100OD
3 - 如果收信号码是手机的话就在后面追加“91”,如果是小灵通的话就要追加“81”。
    +8613401041516是手机号码所以加“91”
    11000D >>>> 11000D91
4 - 11000D91 + 格式化后的收信号码 + “000800” + 格式化后的发送内容
    11000D91 >>>> 11000D91683104011415F60008000A62117231542C8BC44E66
5 - 计算上面那一大字符串的长度除于2,10进制表示。
    11000D91683104011415F6008000A62117231542C8BC44E66长50 50/2=25

嗯,咱再看看手里都有啥了~
    格式化后的短信中心:0891683108100005F0
    实际的发送内容:11000D91683104011415F60008000A62117231542C8BC44E66
    发送内容的长度:25
都准备好了我们可以发短信了 ^_^

最后一步——通过AT命令发送PDU短信

    AT+CMGF=0 <Enter> (告诉它你要发的是PDU类的短信)
    OK (这是它返回的它说:“我已经准备好了”)
    AT+CMGS=25 <Enter> (告诉它你要发的实际长度)
    >0891683108100005F011000D91683104011415F60008000A62117231542C8BC44E66 <Ctrl+Z> (看到它返回“>” 在后面输入格式化的短信中心+实际的发送内容最后按Ctrl+Z发送)

如果最后返回不是“ERROR”,那就是发送成功咯~!

三、拨打电话

 

1、AT命令打电话,注意在拨的号码后面有个分号;

atd10086;

OK

2、如果有电话到来时,则是串口上将收到RING字符串,这时我们可以使用ATA命令摘机,如果不想接听,可以使用ATH挂断;

 但是我没有接到RING。

四、AT常用命令

 

at

OK

1,  查模块制造商:

at+cgmi
ZTE INCORPORATED

OK

 

2,  查GPRS模块型号:

at+cgmm
MF626

OK

 

3,  查模块版本:

at+cgmr
BD_TMOP673M3V1.0.1B07

OK

 

4,  查SIM卡是否在位:

at+cpin?
+CPIN: READY

OK

 

5,查GPRS模块信号强度,其中”,”前的数字为信号强度,如下面示例中的12为信号强度。

at+csq
+CSQ: 12,99

OK

 

若信号强度为99,则无效。我这里信号强度一般在20左右。

6,查SIM卡是否注册上网络,其中”,”后的值为SIM卡的注册状态,如下面示例中的1.

 

OK
at+creg?
+CREG: 0,5

OK

 

如果状态值为0,表示未注册;如果为1表示本地号码注册上;如果为2,表示正在搜索运营商注册,但没注册上;3表示拒绝注册;4,未知状态; 5, 漫游号码注册上。

 

7,查SIM卡运营商,如下面显示的”CHN-CUGSM”为中国联通的号码:

 

at+cops?
+COPS: 0,0,"China Mobile Communication Corp.",0

OK

 

在UC864E模块上,使用AT+COPS?查询,则联通的号码将显示为”cmnet”,但在GTM900B/C, SIM5215上显示的是”CHN-CUGSM”. 中国移动的则为”China Mobile”,在现实的时候也有一些区别,例如在UC864E上中国移动显示为” China Mobile”,当中只有一个空格;而在GTM900B上则显示” China   Mobile”,当中有两个空格。但是这上面是China Mobile Communication Corp.

8,短信相关命令:

设置短信格式为Text模式:

AT+CMGF=1  

OK

 

设置短信格式为PDU模式:

AT+CMGF=0

OK

 

  • 14
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GSM模块发送短信的过程如下:首先,用户需要通过短信发送指令将短信内容发送GSM模块GSM模块会将接收到的短信内容进行处理,并根据短信内容的不同执行相应的操作。比如,用户发送短信GSM模块GSM模块会自动回复一条短信,提示用户可以发送数字1、2或3来选择不同的功能。用户可以回复1、2或3,GSM模块会根据短信内容回复不同的短信。\[1\] 在具体实现过程中,需要注意以下几个问题:首先,如何获取GSM模块的回送信息。可以使用read()函数来获取回送信息,但是需要注意,在发送完指令后需要进行一定的延迟操作,否则只能读取到八位的数据。其次,如何获取特定信息,比如短信存储地址、发送方手机号等。可以通过字符串的剪切等操作来获取这些信息。最后,如果在发送短信时出现乱码,可以通过指定发送的长度来解决,可以使用Strlen()函数来指定发送内容的长度。\[2\] 总结来说,用户可以通过串口与GSM模块进行通信,发送相应的AT指令来控制模块发送短信。用户需要插入移动的电话卡,并将GSM模块通过串口与电脑连接,然后使用串口助手与GSM模块建立通信,在串口助手中发送相应的AT指令即可控制模块发送短信。\[3\] #### 引用[.reference_title] - *1* *2* *3* [利用gsm模块自动收发短信](https://blog.csdn.net/fate08301017/article/details/41253813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值