网站大量收购独家精品文档,联系QQ:2885784924

ARM9和Linux下的GPRS模块C代码.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM9和Linux下的GPRS模块C代码

ARM9和Linux下的GPRS模块C代码 //我前个月使用实验室的周立功ARM7实验箱配套的明基GPRS模块连接到我的QQ2440V3开发板, //在Linux环境下,做模块的初始化、读取模块内的某些硬件信息和拨打电话,实现远程无线控制, //如果想做更复杂的操作,在这些代码的基础上增加少量代码即可实现, //下面的代码是C语言代码,大部分代码是我个人编写的,部分代码参考了一些书籍资料, //我发现很多网友使用明基GPRS模块的过程中出现各种问题,在这里我贴出来给大家参考 //如转载本文章,请注明本文出处/s/blog_548d39f90100bcdp.html #include stdio.h //标准输入输出定义 #include stdlib.h //标准函数库定义 #include unistd.h //Unix 标准函数定义 #include fcntl.h //文件控制定义 #include sys/types.h #include sys/stat.h #include termios.h //PPSIX 终端控制定义 #include time.h #include string.h #include errno.h //错误号定义 #include myfunctions.h //自定义函数定义文件 static int fd=0; struct termios newtio,oldtio; //==============================================================// //明基M23 GPRS模块AT指令,请参考明基的Datasheet //初始化指令AT+HRST=1,关闭模块的电源AT$POWEROF, //长时间不与M23 GPRS模块通讯之后再次通讯时使用指令AT$NOSLEEP=1 //在拨打电话时,在对方接通电话之后返回“OK”字符串,使用指令AT+COLP=1 //当有电话进入时,显示来电号码,在初始化时需加上指令AT+CLIP=1 //读取SIM卡的ID号使用指令AT+CIMI //写入短信中心号码,使用AT+CSCA=短信中心的号码,145 //从模块读取短信而不是从SIM卡读取,使用AT+CNMI=2,2,0,0,0 //提供本地待机提示音,使用AT+GDT=1,关闭则用AT+GDT=0 //确定已经找到SIM卡,使用AT+COPS?,若返回0则表明没有找到 //数据通讯时,如果网络断开了,模块返回NO CARRIER //数据通讯时,调整发送数据的延时时间AT$TIMEOUT=XX,XX=100-5000毫秒 //拨号指令“ATDxx;”,XX是号码,号码之后必须带分号 //选择差分语音通道:M22/M22A,AT$AUPATH=3,1;M23,AT$AUPATH=0,1;差分语音通道,普通手柄通话 //选择单端语音通道:M22/M22A,AT$AUPATH=2,1;M23,AT$AUPATH=1,1;单端语音通道,免提童话 //语音通话时,调节发送和接收增益:AT$AUGAIN=(0-2),(1-9) 其中的(0-2)代表:0发送的SIDE //TONE,1发送增益,2接收增益;(1-9)代表可选择的增益范围 //另一条调节接收增益的AT指令AT$AUVOL=(0-5),0则关闭接收,5为最大 //吉林移动的信息中心+8613800200500 //初始化GPRS模块的指令阵列// char * cmd[20]={ AT, AT, AT$NOSLEEP=1, AT+GDT=1, AT$AUPATH=0,1, AT$AUGAIN=1,7, AT$AUGAIN=2,9 }; //==============================================================// //==============================================================// int tty_writecmd(char *buf,int nbytes) { int i; for(i=0; inbytes; i++) { write(fd,buf[i],1); usleep(100); } write(fd,\r\n,2); usleep(300000); return tcdrain(fd); } //int tcdrain (int FILEDES),The `tcdrain function waits until all queued output to the terminal FILEDES has been

文档评论(0)

yan666888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档