资源描述:
《2410和gprs模块的通信源代码及详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2410和gprs模块的通信源代码及详解 收藏昨天写了一个2410和gprs通信的小程序,模拟xp的超级终端与gprs通信的方式。用户从命令行界面输入命令,和超级终端下调试的时候是一样的,就不多说了。代码比较少,如下:#include #include #include #include #include #include #include int open_port(void){ int fd;
2、 fd = open("/dev/s3c2410_serial1", O_RDWR
3、O_NOCTTY
4、O_NDELAY); if(fd == -1) printf("Unabletoopenuart1"); else fcntl(fd, F_SETFL, 0); return fd;}int setup_uart(int fd){ struct termiosoldtio, newtio; if((tcgetattr(fd, &oldtio)) != 0) { printf("Saveolderror
5、!"); return -1; } bzero(&newtio, sizeof(newtio)); newtio.c_cflag
6、= (CLOCAL
7、 CREAD); newtio.c_cflag &= ~CSIZE; newtio.c_cflag &= ~CSTOPB;//1stopbit newtio.c_cflag &= ~PARENB;//Noparity newtio.c_cflag
8、= CS8; //8bitsdata cfsetispeed(&newtio, B9600); cfse
9、tospeed(&newtio, B9600); //newtio.c_lflag
10、=(ICANON
11、ECHO); //newtio.c_lflag&=~ECHOE; //newtio.c_iflag&=~(IXON
12、IXOFF
13、IXANY); newtio.c_cc[VTIME = 0; newtio.c_cc[VMIN = 0; tcflush(fd, TCIFLUSH); if((tcsetattr(fd, TCSANOW, &newtio)) != 0) { printf("Setnewerror!
14、n"); return -1; }}int main(void){ int i; int fd; char c,str[200; fd = open_port(); if(fd == -1) return 0; i = setup_uart(fd); if(i == -1) return 0; while(1) { for(i=0; i<200; i++) str[i = ' '; i = 0; printf("GPRS-CMD#"); while((c=g
15、etchar()) != 10) { str[i = c; i++; } str[i = 13; str[i+1 = ' '; i = write(fd, str, strlen(str)); if(i < 0) printf("writeerror!"); for(i=0; i<100; i++) usleep(100); i = read(fd, str, 200); printf("%s", str); }}