ARM9和Linux下的GPRS模塊C代碼.doc_第1頁(yè)
ARM9和Linux下的GPRS模塊C代碼.doc_第2頁(yè)
ARM9和Linux下的GPRS模塊C代碼.doc_第3頁(yè)
ARM9和Linux下的GPRS模塊C代碼.doc_第4頁(yè)
ARM9和Linux下的GPRS模塊C代碼.doc_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ARM9和Linux下的GPRS模塊C代碼/我前個(gè)月使用實(shí)驗(yàn)室的周立功ARM7實(shí)驗(yàn)箱配套的明基GPRS模塊連接到我的QQ2440V3開(kāi)發(fā)板,/在Linux環(huán)境下,做模塊的初始化、讀取模塊內(nèi)的某些硬件信息和撥打電話,實(shí)現(xiàn)遠(yuǎn)程無(wú)線控制,/如果想做更復(fù)雜的操作,在這些代碼的基礎(chǔ)上增加少量代碼即可實(shí)現(xiàn),/下面的代碼是C語(yǔ)言代碼,大部分代碼是我個(gè)人編寫(xiě)的,部分代碼參考了一些書(shū)籍資料,/我發(fā)現(xiàn)很多網(wǎng)友使用明基GPRS模塊的過(guò)程中出現(xiàn)各種問(wèn)題,在這里我貼出來(lái)給大家參考/如轉(zhuǎn)載本文章,請(qǐng)注明本文出處/s/blog_548d39f90100bcdp.html#include /標(biāo)準(zhǔn)輸入輸出定義#include /標(biāo)準(zhǔn)函數(shù)庫(kù)定義#include /Unix 標(biāo)準(zhǔn)函數(shù)定義#include /文件控制定義#include #include #include /PPSIX 終端控制定義#include #include #include /錯(cuò)誤號(hào)定義#include myfunctions.h /自定義函數(shù)定義文件static int fd=0;struct termios newtio,oldtio;/=/明基M23 GPRS模塊AT指令,請(qǐng)參考明基的Datasheet/初始化指令A(yù)T+HRST=1,關(guān)閉模塊的電源AT$POWEROF,/長(zhǎng)時(shí)間不與M23 GPRS模塊通訊之后再次通訊時(shí)使用指令A(yù)T$NOSLEEP=1/在撥打電話時(shí),在對(duì)方接通電話之后返回“OK”字符串,使用指令A(yù)T+COLP=1/當(dāng)有電話進(jìn)入時(shí),顯示來(lái)電號(hào)碼,在初始化時(shí)需加上指令A(yù)T+CLIP=1/讀取SIM卡的ID號(hào)使用指令A(yù)T+CIMI/寫(xiě)入短信中心號(hào)碼,使用AT+CSCA=短信中心的號(hào)碼,145/從模塊讀取短信而不是從SIM卡讀取,使用AT+CNMI=2,2,0,0,0/提供本地待機(jī)提示音,使用AT+GDT=1,關(guān)閉則用AT+GDT=0/確定已經(jīng)找到SIM卡,使用AT+COPS?,若返回0則表明沒(méi)有找到/數(shù)據(jù)通訊時(shí),如果網(wǎng)絡(luò)斷開(kāi)了,模塊返回NO CARRIER/數(shù)據(jù)通訊時(shí),調(diào)整發(fā)送數(shù)據(jù)的延時(shí)時(shí)間AT$TIMEOUT=XX,XX1005000毫秒/撥號(hào)指令“ATDxx;”,XX是號(hào)碼,號(hào)碼之后必須帶分號(hào)/選擇差分語(yǔ)音通道:M22M22A,AT$AUPATH=3,1;M23,AT$AUPATH=0,1;差分語(yǔ)音通道,普通手柄通話/選擇單端語(yǔ)音通道:M22M22A,AT$AUPATH=2,1;M23,AT$AUPATH=1,1;單端語(yǔ)音通道,免提童話/語(yǔ)音通話時(shí),調(diào)節(jié)發(fā)送和接收增益:AT$AUGAIN=(0-2),(1-9) 其中的(0-2)代表:0發(fā)送的SIDE /TONE,1發(fā)送增益,2接收增益;(1-9)代表可選擇的增益范圍/另一條調(diào)節(jié)接收增益的AT指令A(yù)T$AUVOL=(0-5),0則關(guān)閉接收,5為最大/吉林移動(dòng)的信息中心+8613800200500/初始化GPRS模塊的指令陣列/char * cmd20= 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,&bufi,1); usleep(100); write(fd,rn,2); usleep(300000); return tcdrain(fd);/int tcdrain (int FILEDES),The tcdrain function waits until all queued output to the terminal FILEDES has been transmitted./=/=/int tty_read(char *buf,int nbytes) int r=0; r=read(fd,buf,nbytes); return r;/=/int read_info(char *buf) int ir=0,irn=0,nux=0; nux=read(fd,buf,1); if(nux!=0)/如果讀到非零0個(gè)數(shù)據(jù) while(buf0!=0) buf+; ir+; read(fd,buf,1); usleep(50); else printf(讀出0個(gè)數(shù)據(jù)!n); tcflush(fd,TCIOFLUSH);/清空讀寫(xiě)緩存/ return irn=ir+1;/=/int tty_write(char *buf,int nbytes) int i; for(i=0; inbytes; i+) write(fd,&bufi,1); usleep(100); return tcdrain(fd);/=/int tty_end() tcsetattr(fd,TCSANOW,&oldtio); / restore old modem setings / /int tcsetattr (int FILEDES, int WHEN, const struct termios *TERMIOS-P) /This function sets the attributes of the terminal device with file / descriptor FILEDES. The new attributes are taken from the /structure that TERMIOS-P points to/=/void gprs_init() int ij=0,inf=0,numx=0; char rt3100; for(ij=0; ij7; ij+) tty_writecmd(cmdij, strlen(cmdij); bzero(rt3,sizeof(rt3100); inf=read_info(rt3); printf(返回信息:n); printf(%sn,rt3); /=撥叫=/ void gprs_call(char *number, int num) int i=0; tty_write(ATD,3); /發(fā)送撥打命令A(yù)TD tty_write(number,num); tty_write(;,1); tty_write(rn,2); usleep(2000000); printf(正在打電話給:); for(i=0;inum;i+) printf(%c,numberi); /=/int main(void) int kf=0,wr=0,simno=0,rt2n=0,irt2=0; char rt100; char rt2100; char sim=AT+COPS?; char no=135960064*;/電話號(hào)碼 fd = open(/dev/s3c2410_serial0,O_RDWR); if(fd0) perror(open_port error); return; if(kf=set_opt(fd,115200,8,N,1)0) perror(set_opt error); return; gprs_init(); wr=tty_writecmd(sim,strlen(sim); bzero(rt,sizeof(rt100); read_info(rt); if(rt0=0) usleep(500); read_info(rt); if(rt0!=0) printf(獲取SIM卡n); else printf(無(wú)法獲取SIM卡n); return; tty_writecmd(AT+CIMI,strlen(AT+CIMI); /獲取SIM卡的序列號(hào)/ bzero(rt2,sizeof(rt2100); rt2n=read_info(rt2); printf(SIM序號(hào):n); printf(%sn,rt2); tty_writecmd(AT+CGSN,strlen(AT+CGSN); /讀取產(chǎn)品的序列號(hào)/ tty_end(); close(fd);/關(guān)閉設(shè)備文件 return 0; /初始化串口/int set_opt(int fd,int nSpeed, int nBits, char nEvent, int nStop) if ( tcgetattr( fd,&oldtio) != 0) perror(SetupSerial 1); return -1; bzero( &newtio, sizeof( newtio ) ); newtio.c_cflag |= CLOCAL | CREAD; newtio.c_cflag &= CSIZE; switch( nBits ) case 7: newtio.c_cflag |= CS7; break; case 8: newtio.c_cflag |= CS8; break; switch( nEvent ) case O: newtio.c_cflag |= PARENB; newtio.c_cflag |= PARODD; newtio.c_iflag |= (INPCK | ISTRIP); break; case E: newtio.c_iflag |= (INPCK | ISTRIP); newtio.c_cflag |= PARENB; newtio.c_cflag &= PARODD; break; case N: newtio.c_cflag &= PARENB; break; switch( nSpeed ) case 2400: cfsetispeed(&newtio, B2400); cfsetospeed(&newtio, B2400); break; case 4800: cfsetispeed(&newtio, B4800); cfsetospeed(&newtio, B4800); break; case 9600: cfsetispeed(&newtio, B9600); cfsetospeed(&newtio, B9600); break; case 115200: cfsetispeed(&newtio, B115200); cfsetospeed(&newtio, B115200); break; case 460800: cfsetispeed(&newtio, B460800); cfsetospeed(&newtio, B460800); break; default: cfsetispeed(&newtio, B9600); cfsetospeed(&newtio, B9600); break; if( nStop = 1 ) newtio.c_cflag &= CSTOPB; else if ( nStop = 2 ) newtio.c_cflag |= CSTOPB; newtio.c_ccVTIME = 0; newtio.c_ccVMIN = 0; tcflush(fd,TCI

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論