求助stm32的gsmstm32蓝牙模块代码在收到短信后,无法回复

GSM模块发送短信 收到Error:513错误
[问题点数:40分,结帖人w]
GSM模块发送短信 收到Error:513错误
[问题点数:40分,结帖人w]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
摘要:SMS短信息服务作为GSM网络的一种基本业务已得到越来越多的系统运营商和系统开发商的重视,以GSM网络作为数据无线传输网络,可以开发出多种前景极其乐观的各类应用。本文给出一个小型的嵌入式SMS中/英文短信息接口的设计,并详细讨论PDU模式的短信息格式和中文短信息软件解码的设计。&&&&关键词:GSM SMS UTF-8 GB-2312 无线通信 无线数传 遥控 中文编码引 言  SMS(Short Message Service)短信息服务是GSM(Global System for Mobile Communication)系统中提供的一种GSM终端(手机)之间,通过服务中心(Service Center)进行文本信息收发的应用服务,其中服务中心完成信息的存储和转发功能。短信息服务作为GSM网络的一种基本业务,已得到越来越多的系统运营商和系统开发商的重视,基于这种业务的各种应用也蓬勃发展起来。以GSM网络作为数据无线传输网络,可以开发出多种前景极其乐观的各类应用,如无线数据的双向传送、无线远程检测和控制等。典型的应用有:变电站、电表、水塔、水库或环保监测点等监测数据的无线传输和无线自动警报;远程无线控制高压线路断电器、加热系统、防洪拦阻系统或其它机电系统的启动和关闭;车队交通管理和控制指挥系统;控制和监测香烟、食品和饮料自动售货机的运行状态和存货水平等等。  由于GSM网络在全国范围内实现了联网和漫游,具有网络能力强的特点,用户无需另外组网,在极大提高网络覆盖范围的同时为客户节省了昂贵建网费用和维护费用。同时,它对用户的数量也没有限制,克服了传统的专网通信系统投资成本大,维护费用高,且网络监控的覆盖范围和用户数量有限的缺陷。比起传统的集群系统在无线网络覆盖上具有无法比拟的优势,加上GSM的SMS本身具备的数据传送功能,都使得这些应用得到迅速的普及。利用GSM短信息系统进行无线通信还具有双向数据传输功能,性能稳定,为远程数据传送和监控设备的通信提供了一个强大的支持平台。1 SMS短信息的无线数传监视和控制  通常情况,基于SMS短信息服务的无线数传监视和控制系统为一个点到多点的远程无线双向数据通信和控制系统,如图1所示。系统的中心点为数据或监控指挥中心,由计算机网络、数据库、电子地图和GSM通信接口组成。监控中心主要完成各种信息和数据的收发和整理:一方面,接收各个监控点上传的信息和数据,并把它们放入相应的数据库和分发给相应的监控计算机,以实现对各个监控点的监控和管理;另一个方面,监控中心响应监控计算机发出的对各个监控点的控制信息,并且把这些信息下发到相应的监控点上,从而达到对监控点设备进行控制的目的。2 GSM无线通信控制终端  GSM无线通信控制终端为一个MC3的嵌入式系统,具有如图2所示的测量、数据采集、控制、无线通信功能。GSM无线通信控制终端通过GSM网络和监控中心进行双向的信息传输。它将测量和采集到的数据信息传送到监控中心,同时接收监控中心的控制数据,对设备实施相应的控制。3 GSM通信接口的硬件实现  GSM无线通信控制终端的通信接口一般采用目前在市场上提供的可供二次开发的标准的GSM模块,如TC35、FALCOM、WISMO3等。这些通信模块都具备GSM无线通信的全部功能,并提供标准的UART串行接口,支持GSM 07.05所定义的AT命令集的指令。因此,MCU能非常方便地通过UART接口与GSM模块连接,并直接使用AT命令就可以方便简洁地实现短信息的收发、查寻和管理。  在我们设计的GSM无线通信控制终端中,采用的GSM通信模块为FALCOM A2D,MCU使用的是Atmel公司的高速8位微控制器ATmage128。ATmega128芯片为64个引脚,内部集成了4K字节的RAM、4K字节的EEPROM、128K字节的Flash以及2个UART串行接口等。由于采用了高性能的MCU,省掉了大量的外围器件,如外扩RAM、ROM存储器等,使硬件结构大大简化,提高了系统的可靠性。系统的硬件框图如图3所示。4 基于GSM通信的软件接口  市场上提供的可供二次开发的标准的GSM模块都支持GSM 07.05所定义的AT命令集的指令。因此,MCU通过UART串行接口直接向GSM模块下发AT命令,就可以方便简洁地实现基于GSM的短信息SMS的收发、查寻和管理。表1列出了与SMS相关的一些常用的GSM AT指令。表1 与SMS相关的常用GSM AT命令AT指令功&&&& 能AT+CMGD删除一条保存在SIM卡内的短信息AT+CMGF选择短信息格式:0为PDU方式:1为文本方式AT+CMGL列出SIM卡中的保存短信息AT+CMGR读取SIM卡中指定一条短信息的内容AT+CMGS发送一条短信息AT+CSCA设置短信息服务中心地址  根据GSM 07.05的定义,SMS短信息的发送和接收模式共有三种:Block模式、基于AT命令的Text模式和基于AT命令的PDU模式。使用Block模式需要模块生产厂家提供驱动支持;而用于中英文短信息传送应使用PDU模式,只传送英文短信息(纯文本格式)使用Text模式。Text模式的短信息发送和接收比较简单,如不需要传送中文则最好采用Text模式发送和接收短信息。  采用Text模式发送接收短信息的步骤分为初始化GSM模块、发送文本短信息和接收短信息。下面一段简单的程序给出一个示例:PRINT "AT+CSCA=";Chr(34);"+0";Chr(34) ‘设置短信息中心号码PRINT "AT+CMGF=1" ‘设置为Text模式PRINT "AT+CMGS=";Chr(34);"";Chr(34) ‘发送一条短信息PRINT "This is a test SMS";Chr(26)PRINT "AT+CMGR=1" ‘读取收到的一条‘短信息...  该程序使用BASCOM-AVR高级语言编写,其中PRINT语句的功能是通过URAT串行口发送字符串,Chr(34)代表ASCII字符(“),Chr(26) 代表ASCII字符(Ctrl-Z)。第一行语句设置短信息服务中心号码,即通过串口发送以下字符串: AT+CSCA= "+0",其中+0为上海地区中国移动的短信息服务中心号码。第二行语句设置短信息发送格式:AT+CMGF=1,其中1表示采用Text模式。第三和第四行语句发送一条短信息到控制中心,AT命令的格式为:AT+CMGS= ""&cr&This is a test SMS&^Z&,其中控制中心的号码为,短信息内容为“This is a test SMS”,确认控制字符为Ctrl-Z。第五行语句为读取一条收到的短信息内容:AT+CMGR=1,其中1表示收到的(在SIM卡中)第一条短信息。该指令发出后,如果GSM模块中有接收到的短信息,则从UART接口返回如下信息(具体AT命令格式请参考GSM 07.05):  +CMGR: "REC UNREAD","+0",,"02/10/16,15:37:28+32"&&& xxxxxxxxxxxxxxxxxx (收到短信息的文本内容)5 基于PDU模式的中文短信息接收  发送和接收中文或中/英文混合的短信息必须采用PDU模式。根据GSM 07.05的定义,只要控制器通过UART接口向GSM模块下发AT命令,就可以直接读取收到的PDU模式的短信息:  PRINT "AT+CMGF=0" ‘设置为PDU模式  PRINT "AT+CMGR=1"‘读取接收的一条短信‘息在PDU模式下,GSM通信模块的回答格式为:+CMGR: &stat&,,&length&&CR&&LF&&pdu&  其中: stat表示该条短信息的状态,通常为0(未读过,新的短信息)或1(已读过);Length为十进制数,表示pdu数据长度减去短信息服务中心地址长度,单位为字节;&CR&&LF&为回车换行;pdu为PDU模式的数据包。  然后,要分析PDU数据包,根据PDU的数据格式将收到的中文信息和其它相关信息解析出来。5.1 PDU数据包格式  PDU数据包由两部分构成,短信息服务中心地址(SMSC address)和TPDU,表2为PDU数据包的格式,其中一个数据单元为一个字节。  其中短信息服务中心号码、发送源号码、日期以及时间采用压缩BCD码表示,低位在前,高位在后。在本文的网络补充版(http://www.dpj.com.cn)中给出了通过读取短信息的AT命令(AT+CMGR=1)从GSM模块读到的一条PDU模式的短信息,并给出常见的数值与解释。5.2 PDU模式的纯英文短信息解码  PDU模式的纯英文短信息编码使用GSM字符集的7位编码,此时TP-DCS的值为00。如短信息内容为英文字符“Hi”,首先将各个字符转换为7位的标准二进制ASCII码,然后要将后面字符的低位逐位调整到前面,补齐前面的差别。例如:“H”的二进制ASCII码为1001000,“i” 二进制ASCII码为1101001;显然H的二进制编码不足八位,那么就将后面字符i的最后一位补足到H的前面,就成了(C8),i剩下六位110100,前面再补两个0,变成),于是“Hi”就变成了两个八进制数 C834。由于PDU模式的纯英文短信息采用7位编码,解码不方便,因此对于只需发送和接收纯英文字符和数字符号的应用,最好采用Text模式发送和接收短信息。表2 PDU数据包格式(接收MSM)备注名称长度数据单元bit位76543210 SMSC地址长度1N+1(十六进制数) SMSC地址类型11号码类型号码表 SMSC号码N号码第2位号码第1位 号码第4位号码第3位 ………… 号码第n位号码第n-1位 TPDU第一字节1        最长12字节发送源号码长度1实际号码位数k(十六进制数)发送源号码类型11号码类型号码表发送源号码M号码第2位号码第1位号码第4位号码第3位  号码第k位号码第k-1位 TP-PID1    TP-DCS1      TP-SCTS7年低位年高位 月低位月高位 日低位日高位 时低位时高位 分低位分高位 秒低位秒高位 时&&&& 区 TP-UDL1        最长140字节TP-UD短信息内容1        1                          1        1        &&&&5.3 中文短信息的解码  由于中文字的编码是采用2个字节的编码,因此发送和接收中文或中英文混合的短信息只能采用PDU模式。但在GSM标准中,中文编码采用UTF-8的编码,不是目前国内常用的GB-2312编码,故还需要进行中文编码的转换,才能与采用GB-2313汉字库相配合显示汉字字型。由于UTF-8和GB-2312编码之间不存在一一对应的线性关系,因此只能采用查表的方式进行转换。下面给出一个由UTF-8到GB-2312编码转换的算法。  ① 建立UTF-8和GB-2312两个中文编码表,表中数据项为2个字节长度的十六进制的数,代表一个中文编码。两个表的长度分别为14 890字节(2×7445)。UTF-8编码表按数据项值从小到大排序,而在GB-2312编码表中,与UTF-8相同位置处为相同汉字的GB-2312码字,如图4所示。  ② 软件解码过程为:每次从PDU模式SMS数据包的TP-UD中取出两个字节,采用二分法快速数据查找算法,在UTF-8编码表中找到其所在位置,然后在GB-2312表的相同位置处读取相对应的GB-2312编码。解码流程如图5所示。  ③ 二分法的最坏查找次数为lg2(n+1),UTF-8表的长度n为7445,固最坏查找次数为13次,就是说一个中文编码由UTF-8到GB-2312的转换最多经过13次比较查找就可完成。 这比采用简单的顺序查表要快的多,大大减少了查表所花费的时间,非常适合在一般的嵌入式系统中使用。  ④ 尽管两个汉字编码表要占用近30 KB(如还需要GB-2312到UTF-8的转换,则还要增加两个表,共占60 KB),但由于采用了ATmega128单片机,其片内有128KB的程序存储器,因此可将程序与表格放在一起。去掉60 KB的表格,仍有近70 KB的容量用于系统程序,因此完全不用外部扩充存储器(汉字字库除外),大大简化了硬件的结构和设计。结 语  本文的设计方案已应用在我们研发的产品“车船载GPS-GSM卫星定位无线通信移动终端”上,经过多年的运行和使用,证明系统工作稳定可靠。2001年10月,在美国著名计算机应用杂志《CIRCUIT CELLAR》举办的世界性电子设计竞赛“Design Logic 2001 Contest”中,该产品获得三等奖。
阅读(4594)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'GSM模块发短信',
blogAbstract:'
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}查看: 1151|回复: 2
STM32连接GSM模块实验整理教程
一点资料,仅供参考。
串口1和USB转串口的连接方法.jpg (476.08 KB, 下载次数: 40)
16:28 上传
串口1通过蓝色USB转接线线连接电脑;串口2连接GSM模块.jpg (445.33 KB, 下载次数: 25)
16:28 上传
串口2与GSM模块转出的串口的连接方法.jpg (472.33 KB, 下载次数: 31)
16:28 上传
注意纽扣电池旁的跳线帽.jpg (837.71 KB, 下载次数: 38)
16:28 上传
关于GSM实验的硬件连接方法需要注意的连接处是:
1、纽扣电池座旁边的跳线帽;
2、串口1通过排线连接USB转串口线,再连接到电脑USB;
3、串口2通过排线连接到GSM模块的串口上;
接线法参考文件夹中的图。
关于GSM实验的软件需要修改的地方
由于该工程是由老版本的Keil做的,因此,我们需要对其进行改造,
将#include &stm32f10x_map.h&
#include &stm32f10x_nvic.h&
#include &stm32f10x.h&
在malloc.h中,添加:
#include &stm32f10x.h&
typedef unsigned long&&u32;
将USART1_IRQChannel
USART1_IRQn
将USART2_IRQChannel
USART2_IRQn
因为我们用的GSM模块的波特率是115200,而串口2和GSM模块相连,所以需要在程序中修改USART2串口的波特率为115200,如下:
& & USART2_Init(36,115200);& & /*初始化串口2*/
//& & USART2_Init(36,38400);& & /*初始化串口2*/& &
0.png (51.23 KB, 下载次数: 30)
16:29 上传
全部资料下载地址:
(8.59 MB, 下载次数: 5)
10:33 上传
点击文件名下载附件
下载积分: 黑币 -5
串口跳线必须引出吗,在STM32F0x上可以实现吗?谢谢
Powered by基于STM32的GSM短信报警系统的设计与实现
> 基于STM32的GSM短信报警系统的设计与实现
基于STM32的GSM短信报警系统的设计与实现
引言随着我国经济建设的迅速发展和人民群众生活水平的极大提高,人们越来越注重自身所处的环境是否安全。特别是当家中无人或者仅有老人孩子时,家庭成员的生命和财产的安全性越来越受到重视。因此,家庭防盗已成为一个重要的社会问题。目前,许多住宅小区的安防主要依靠传统的机械式(防盗网、防盗窗)防盗系统。这样不仅有碍美观,不符合火灾逃生的要求,而且不能有效地防止坏人的侵入。随着电子技术的飞速发展,防盗已迫切从原来的简单化、局部化向智能化、集成化发展。当前,息服务已作为网络的一种基本业务,模块与单片机相连接应用于家庭无线防盗中,让家庭防盗更及时、更方便,以最直观的中文短消息形式,直接把案发地点的情况反映到用户的手机屏幕上。同时采用一种热释电红外传感器进行检测,变有形的传统防盗网防盗窗为无形的监控,给家庭防盗提供最直观、高效、可靠的保障。1 系统的总体及工作原理GSM框图如图1所示。整个系统[1]由单片机模块、热释电传感器模块、GSM模块及传统扬声器模块组成。GSM模块采用芯讯通(SIMCom)公司生产的SIM900A芯片及外围电路,而热释电传感器模块采用红外专用芯片BISS0001的设计电路。首先当热释电传感器模块检测到人发射的红外线时,通过其外围放大电路转换成电压信号传输给单片机。单片机判断热释电传感器模块送来的数据,通过串口发送一个高电平给GSM模块,使GSM模块发送短信到设定的手机号码,及时通知主人家里出现了什么情况,同时使扬声器发声报警,从而系统的预想功能。然而白天当主人在家的时候,则不需要设定防盗功能,可以关闭功能;假如主人要离开房屋或夜间睡眠时,则需要打开防护功能。这些 &设防&、&撤防&的功能,同样可以通过手机发送特定短信至GSM模块的方式进行开启和关闭,热释电传感器检测会随之起作用,以免引起不必要的麻烦和误报。图1 系统总体框图本文引用地址:2 系统硬件电路设计2.1 F103 最小系统STM32系列单片机[2]由ST公司生产的专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex-M3内核。本系统采用的STM32属于互联型产品,具有以下标准功能:72MHZ主频,56k字节Flash,64字节SRAM,2个看门狗,多个16 位定时器,80%的引脚可以作为通用I/O 口,以及USART、SPI等通信外设,其外设完全满足本系统的功能要求。因此,本系统采用STM32F103作为总控制器,其最小系统如图2所示。本系统采用4线JTAG接口,即TMS(测试模式选择)、TCK(测试时钟)、TDI(测试数据输入)、TDO(测试数据输出),又采用常规的20pin接口方式,通过仿真器与PC机连接,可以在线仿真调试,方便可靠。系统采用8MHZ晶体振荡器,此时需要接负载电路。另外,复位电路的设计方式简洁,可以系统可靠复位。图2 STM32F103RBT6 最小系统
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一基于STM32的GSM短信报警系统的设计与实现_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于STM32的GSM短信报警系统的设计与实现
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 stm32支持usb 4g模块 的文章

 

随机推荐