返回信息流这是我编写的串口接收程序,可接收不到短信,哪错了呢?
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<termios.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<error.h>
#include<unistd.h>
#include<iconv.h>
#define BAUDRATE B38400
#define MODEMDEVICE "/dev/s3c2410_serial1"
#define BUFFER_SIZE 512
int main( )
{ int i=0;
int fd,c=0,res;
struct termios oldtio,newtio;
char buf[BUFFER_SIZE];
char mod0[50];
char mod1[50];
char mod2[50];
printf("Start...\n");
/*打开PC机的COM1通信端口*/
fd=open(MODEMDEVICE,O_RDWR | O_NOCTTY);
if(fd<0)
{
perror(MODEMDEVICE);
exit(1);
}
printf("open...\n");
/*将目前终端机的结构保存至oldtio结构*/
tcgetattr(fd,&oldtio);
/*清除newtio结构,重新设置通信协议*/
bzero(&newtio,sizeof(newtio));
/*通信协议设为8N1*/
newtio.c_cflag =BAUDRATE |CS8|CLOCAL|CREAD;
newtio.c_iflag=IGNPAR;
newtio.c_oflag=0;
/*设置为正规模式*/
newtio.c_lflag=ICANON;
/*清除所有队列在串口的输入*/
tcflush(fd,TCIFLUSH); /*新的termios的结构作为通信端口的参数*/
tcsetattr(fd,TCSANOW,&newtio);
printf("Reading...\n");
sprintf(mod0,"AT\r\n");
write(fd,mod0,strlen(mod0));
sprintf(mod1,"AT+CMGF=0\r\n");
write(fd,mod1,strlen(mod1));
sprintf(mod2,"AT+CMGL=1\r\n");
write(fd,mod2,strlen(mod2));
while(1)
{
res=read(fd,buf,BUFFER_SIZE);
printf("res=%d,buf=%s\n",res,buf);
}
close (fd);
return 0;
}
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #9932同步于 2010/12/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
linux串口接收AT命令的短信,总接收不到,求高手赐教 急急急!
weiyanan10
2010/12/2镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复