ARM开发板上通过gprs发短信

2007-07-26     浏览:-1478527988     来源:Linux联盟收集整理
关键词:  PR  
通过gprs发短信的程序,重点在设置串口属性,比如硬件流控,等等。strcat(gsmMessage, ??\x1a??); 这一句结束短信内容。串口设置的有关语句如下:
newtio.c_cflag |= CLOCAL | CREAD | CRTSCTS;
newtio.c_iflag = IGNPAR;
newtio.c_oflag = 0;
newtio.c_lflag = 0; ////non ICANON
newtio.c_cc[VINTR] = 0; /* Ctrl-c */
newtio.c_cc[VQUIT] = 0; /* Ctrl-\ */
newtio.c_cc[VERASE] = 0; /* del */
newtio.c_cc[VKILL] = 0; /* @ */
newtio.c_cc[VEOF] = 4; /* Ctrl-d */
newtio.c_cc[VTIME] = 5; /* inter-character timer, timeout VTIME*0.1 */
newtio.c_cc[VMIN] = 0; /* blocking read until VMIN character arrives */
newtio.c_cc[VSWTC] = 0; /* ''\0'' */
newtio.c_cc[VSTART] = 0; /* Ctrl-q */
newtio.c_cc[VSTOP] = 0; /* Ctrl-s */
newtio.c_cc[VSUSP] = 0; /* Ctrl-z */
newtio.c_cc[VEOL] = 0; /* ''\0'' */
newtio.c_cc[VREPRINT] = 0; /* Ctrl-r */
newtio.c_cc[VDISCARD] = 0; /* Ctrl-u */
newtio.c_cc[VWERASE] = 0; /* Ctrl-w */
newtio.c_cc[VLNEXT] = 0; /* Ctrl-v */
newtio.c_cc[VEOL2] = 0; /* ''\0'' */
int main(void)
{
int fd;
int nread,nwrite,i;
char buff[32];
char reply[128];
char gsmMessage[20] = ??Hello!??;

if((fd=open_port(fd,2))<0){
perror(??open_port error??);
return -1;
}
if((i=set_opt(fd,115200,8,''N'',1))<0){
perror(??set_opt error??);
return -1;
}
printf(??fd=%d\n??,fd);
memset(buff,0,sizeof(buff));
buff[0] = ''A'';
buff[1] = ''T'';
buff[2] = ''\r'';
nwrite = write(fd,buff,3);
printf(??nwrite=%d,%s\n??,nwrite,buff);
memset(reply,0,sizeof(reply));
nread = read(fd,reply,sizeof(reply));
printf(??nread=%d,%s\n??,nread,reply);
memset(buff,0,sizeof(buff));
strcpy(buff,??AT+CMGF=1??);
strcat(buff,??\r??);
nwrite = write(fd,buff,10);
printf(??nwrite=%d,%s\n??,nwrite,buff);
memset(reply,0,sizeof(reply));
nread = read(fd,reply,sizeof(reply));
printf(??nread=%d,%s\n??,nread,reply);
memset(buff,0,sizeof(buff));
strcpy(buff,??AT+CMGS=??);
strcat(buff,??136??);
strcat(buff,??\r??);
nwrite = write(fd,buff,strlen(buff));
printf(??nwrite=%d,%s\n??,nwrite,buff);
memset(reply,0,sizeof(reply));
nread = read(fd,reply,sizeof(reply));
printf(??nread=%d,%s\n??,nread,reply);
strcat(gsmMessage, ??\x1a??);
nwrite = write(fd,gsmMessage,7);
printf(??nwrite=%d,%s\n??,nwrite,gsmMessage);
memset(reply,0,sizeof(reply));
nread = read(fd,reply,sizeof(reply));
printf(??nread=%d,%s\n??,nread,reply);
close(fd);
return 0;
}
Linux联盟收集整理