当前位置:首页 > 单片机 > 单片机
[导读] /************************* ********GPRS调试笔记********************************调试目的:通过SPCE061A单片机控制SIM900A GPRS模块发送短信调试过程: 1.利用延时来发送PDU格式的短信(不接受GPRS

/************************* ********GPRS调试笔记********************************

调试目的:通过SPCE061A单片机控制SIM900A GPRS模块发送短信

调试过程:

1.利用延时来发送PDU格式的短信(不接受GPRS的返回值)

a.发送AT+CMGF=0rn指令

b.延时2s,确定GPRS对a步骤中发送的指令已经接受。ps:延时的时长可做适当调整,但是一定要保证在这段时间里,GPRS已经接受AT

指令,并作出回应,否则会导致发送短信失败。笔者亲测过,延时时间太短的话,真的无法发送短信,当时没有注意到这一点,调试

了好久,才发现这个问题。

c.发送AT+CMGS=21rn指令,21为你要发送的字符长度,这里我就不介绍,SIM900A说明书上讲的很详细

d.延时2s,这里的原理和b中所说的几乎一样,不再追述

e.发送pdu格式的编码,这里需要设置一些参数,比如短信中心号码,接受号码等等,这里我也不细述了,毕竟使用说明书上写得很清

楚了,我发送的是“0891683108701305F011000D86688193909435F70008A7064F60597DFF01”,引号内以字符的形式发送就行,

这一串字符里,包含了一些参数的设置,还有发送短信的内容,读者在实际操作时,可将参数的设置和内容分开发送,笔者为了

简单处理,就统一处理了。

f.最后一步了,发送结束符--0x1a,直接发送0x1a,主要这里不要发送成字符了,是16进制0x1a;到此为至,短信已经成功发送了,

短信的内容是“你好!”;

2.通过判断GPRS的返回值来发送短信

a.发送AT+CMGF=0rn指令

b.

这里是重点,记得当时卡这里卡了好长时间,几乎到了要放弃的边缘!!!这里重点分析一下吧

while(strcmp(rec_string1,"AT+CMGF=0rnrnOK")!=0)

{

*P_Watchdog_Clear= 0x0001;

}

等待接受返回值,并且利用字符串比较函数比较接受到的字符串rec_string1和正确的返回值AT+CMGF=0rnrnOK对比;

这里用到的IRQ7串口中断来接受,利用全局变量str_string1[30]和全局n模拟一个栈来缓存接收到的返回值。需要强调说明的是

,发送完AT+CMGF=0rn这条指令后gprs的返回值应该是“AT+CMGF=0rnrnOK”,也就是返回了发送过去的AT指令加上回车换行

加上OK,但是资料上说的却是"OK",简直差点把笔者坑死,经过笔者不懈地努力调试,终于发现了这里的问题。

c.能到这一步,说明之前的返回值已经收到了,但是细心的读者可能就会发现,发送“AT+CMGS=21rn”这条指令的前面有这两行

简单的代码 delay();n = 0; 一行是延时,一行是清空栈底,清空栈底这里我就不过多的解释了,很简单。有的读者会问,

delay()函数是干什么的呢?不是不利用延时来发送短息吗?这里问题有点复杂,笔者自己也没弄得很清楚,但是当去掉delay()

或将delay()和n=0;两行代码互换位置后,程序就会死卡,并且,你调试时就会发现n并不是等于0的,rec_string1字符串里面存的

并不是GPRS本次返回值,而是有一部分是上次的,也就是说n=0这句并没有起到清空栈底的作用,但是,这程序已经运行到

send_string(cmd2);

while(strcmp(rec_string1,"AT+CMGS=21rnrn>")!=0)

{

*P_Watchdog_Clear= 0x0001;

}这里了啊?当时笔者也很疑惑,不能理解,感觉完全颠覆了我的认知(曾一度怀疑是61板的问题),但是后来仔细思考了一番

,发现很有可能是IRQ7中断的原因,导致n=0,这句执行失败,n=0这句c语言代码经编译器转换成汇编代码后,有好几句,也就是说

n=0这句C代码并不是cpu执行指令时的最小原子值,因此在执行这句代码时,很有可能被IRQ7中断给打断,导致这种结果。于是,

笔者在清空栈底时,用了delay()函数,延时确保不会发生中断,保护n=0这行代码。结果证明,我的猜想是正确的。

d.剩下的就没有什么要注意的了,和方法1里面几乎一样,笔者就不啰嗦了。

如有错误,希望各位大神能及时指出,互相学习!

这里附上源代码一份,希望对你有帮助!

http://download.csdn.net/detail/qq_24478297/8936803


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭