linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux开发区 > 嵌入应用 >
栏目导栏
资料搜索
热门文章
·Symbian编程VC开发环境设置
·基于ARM的嵌入式Linux开发平台
·嵌入式Linux用Qt Designer快速
·S3C2410X开发总结及心得
·轻松控制uClinux嵌入式开发过程
·嵌入式操作系统uCLinux
·uClinux系统分析
·Porting uClinux to Samsung S
·uC/OS和uClinux的比较
·在Windows上应用uClinux
·sqlite嵌入式数据库在arm-linu
·嵌入式设备上的 Linux 系统开发
·七款嵌入式Linux操作系统简介
·e680i手机嵌入式Linux 研究
·嵌入式系统和嵌入式操作系统
最新文章
·在嵌入式Linux环境下制作QPF字
·ARM Linux开机后自动运行特定程
·构建基本的嵌入式Linux根文件系
·自己动手打造嵌入式Linux软硬件
·MP3播放器madplay在ARM的移植
·Linux 2.6.11 MTD驱动情景分析
·ARM中C和汇编混合编程及示例
·BusyBox 简化嵌入式 Linux 系统
·使用虚拟机嵌入式Linux开发前的
·用NFS服务开发ARM Linux程序的
·虚拟机Linux系统下连接ARM开发
·嵌入式Linux系统下的网页浏览器
·Linux移植PSP详细步骤
·浅析armlinux 2.4.19中断irq分
·Linux 的魅力: 开发 Nokia N80
Google
 
ARM开发板上通过gprs发短信
[ 作者:  加入时间:2007-07-25 11:24:38  来自:Linux联盟收集整理 ]
通过gprs发短信的程序,重点在设置串口属性,比如硬件流控,等等。strcat(gsmMessage, "\x1a"); 这一句结束短信内容。串口设置的有关语句如下:
 newtio.c_cflag  |=  CLOCAL | CREAD | CRTSCTS;
 newtio.c_iflag = IGNPAR;QePLinux联盟
 newtio.c_oflag = 0;QePLinux联盟
 newtio.c_lflag = 0;  ////non ICANON
 
 newtio.c_cc[VINTR]    = 0;     /* Ctrl-c */ QePLinux联盟
 newtio.c_cc[VQUIT]    = 0;     /* Ctrl-\ */QePLinux联盟
 newtio.c_cc[VERASE]   = 0;     /* del */QePLinux联盟
 newtio.c_cc[VKILL]    = 0;     /* @ */QePLinux联盟
 newtio.c_cc[VEOF]     = 4;     /* Ctrl-d */QePLinux联盟
 newtio.c_cc[VTIME]    = 5;     /* inter-character timer, timeout VTIME*0.1 */QePLinux联盟
 newtio.c_cc[VMIN]     = 0;     /* blocking read until VMIN character arrives */QePLinux联盟
 newtio.c_cc[VSWTC]    = 0;     /* '\0' */QePLinux联盟
 newtio.c_cc[VSTART]   = 0;     /* Ctrl-q */ QePLinux联盟
 newtio.c_cc[VSTOP]    = 0;     /* Ctrl-s */QePLinux联盟
 newtio.c_cc[VSUSP]    = 0;     /* Ctrl-z */QePLinux联盟
 newtio.c_cc[VEOL]     = 0;     /* '\0' */QePLinux联盟
 newtio.c_cc[VREPRINT] = 0;     /* Ctrl-r */QePLinux联盟
 newtio.c_cc[VDISCARD] = 0;     /* Ctrl-u */QePLinux联盟
 newtio.c_cc[VWERASE]  = 0;     /* Ctrl-w */QePLinux联盟
 newtio.c_cc[VLNEXT]   = 0;     /* Ctrl-v */QePLinux联盟
 newtio.c_cc[VEOL2]    = 0;     /* '\0' */
 
 
int main(void)QePLinux联盟
{QePLinux联盟
 int fd;QePLinux联盟
 int nread,nwrite,i;QePLinux联盟
 char buff[32];QePLinux联盟
 char reply[128];QePLinux联盟
 char gsmMessage[20] = "Hello!";QePLinux联盟
 QePLinux联盟
 if((fd=open_port(fd,2))<0){QePLinux联盟
  perror("open_port error");QePLinux联盟
  return -1;QePLinux联盟
 }QePLinux联盟
 if((i=set_opt(fd,115200,8,'N',1))<0){QePLinux联盟
  perror("set_opt error");QePLinux联盟
  return -1;QePLinux联盟
 }QePLinux联盟
 printf("fd=%d\n",fd);QePLinux联盟
 memset(buff,0,sizeof(buff));QePLinux联盟
 buff[0] = 'A'; QePLinux联盟
 buff[1] = 'T'; QePLinux联盟
 buff[2] = '\r'; QePLinux联盟
 nwrite = write(fd,buff,3);QePLinux联盟
 printf("nwrite=%d,%s\n",nwrite,buff);QePLinux联盟
 memset(reply,0,sizeof(reply));QePLinux联盟
 nread = read(fd,reply,sizeof(reply));QePLinux联盟
 printf("nread=%d,%s\n",nread,reply);QePLinux联盟
 memset(buff,0,sizeof(buff));QePLinux联盟
 strcpy(buff,"AT+CMGF=1");QePLinux联盟
 strcat(buff,"\r");QePLinux联盟
 nwrite = write(fd,buff,10);QePLinux联盟
 printf("nwrite=%d,%s\n",nwrite,buff);QePLinux联盟
 memset(reply,0,sizeof(reply));QePLinux联盟
 nread = read(fd,reply,sizeof(reply));QePLinux联盟
 printf("nread=%d,%s\n",nread,reply);QePLinux联盟
 memset(buff,0,sizeof(buff));QePLinux联盟
 strcpy(buff,"AT+CMGS=");QePLinux联盟
 strcat(buff,"136");QePLinux联盟
 strcat(buff,"\r");QePLinux联盟
 nwrite = write(fd,buff,strlen(buff));QePLinux联盟
 printf("nwrite=%d,%s\n",nwrite,buff);QePLinux联盟
 memset(reply,0,sizeof(reply));QePLinux联盟
 nread = read(fd,reply,sizeof(reply));QePLinux联盟
 printf("nread=%d,%s\n",nread,reply);QePLinux联盟
 strcat(gsmMessage, "\x1a");     QePLinux联盟
 nwrite = write(fd,gsmMessage,7);QePLinux联盟
 printf("nwrite=%d,%s\n",nwrite,gsmMessage);QePLinux联盟
 memset(reply,0,sizeof(reply));QePLinux联盟
 nread = read(fd,reply,sizeof(reply));QePLinux联盟
 printf("nread=%d,%s\n",nread,reply);QePLinux联盟
 close(fd);QePLinux联盟
 return 0;QePLinux联盟
} QePLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·ARM Linux外部中断处理过程  (2007-07-16 11:25:34)
 ·介绍基于ARM的网络图像传输技术  (2007-07-05 11:16:19)
 ·浅析Arm Linux操作系统调用流程详细解析  (2007-07-03 11:37:58)
 ·使用RMAN进行备份和恢复的常用命令介绍  (2007-06-18 11:34:03)
 ·构建gdb+gdbserver调试arm程序  (2007-05-31 12:18:40)
 ·在Ubuntu上建立Arm Linux的开发环境  (2007-05-15 10:29:36)
 ·一步步制作 Arm-Linux交叉编译环境  (2007-05-08 10:19:48)
 ·Linux下ARM/DSP双核系统通信接口设计  (2007-01-31 10:38:52)
 ·Oracle10g用RMAN恢复临时表空间增强  (2006-12-12 11:27:20)
 ·Linux系统下用Hdparm优化硬盘性能  (2006-12-07 11:06:52)