⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gps_test.c

📁 该程序在Linux下面测试GPS模块的输出数据
💻 C
字号:
/* func:send a message "hello ,bcng!" */
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <string.h>

int OpenCom1(void);
void DialPhone(int);

int fd;
#define MAXNUM 100
/* open com1  */
int OpenCom1()
{
	int Com1;
  	struct termios oldtio,newtio;
  	
  	Com1 = open("/dev/ttyS2", O_RDWR | O_NOCTTY);
  	if (Com1 <0)
	{
  		printf("Could not open Serial port!\n");
        	return 0;
	}
	
 	tcgetattr(Com1,&oldtio);                                                                             
 	newtio.c_iflag=0;
 	newtio.c_oflag=0;
 	newtio.c_cflag=CLOCAL | CREAD | CS8 ;
 	cfmakeraw(&newtio);
 	newtio.c_cflag &= ~PARENB ; //no pari
 	newtio.c_cflag &=~CSTOPB;
 	newtio.c_cflag|= IXON |IXOFF |IXANY;
	newtio.c_lflag=0;
 	cfsetispeed(&newtio,B9600);
 	cfsetospeed(&newtio,B9600);
  	newtio.c_cc[VTIME]    = 0;
  	newtio.c_cc[VMIN]     = 1;
 	tcflush(Com1, TCIFLUSH);
 	tcflush(Com1, TCOFLUSH);
  	tcsetattr(Com1,TCSANOW,&newtio);
  	fcntl(Com1,F_SETFL,0);
  	return Com1;                                                                              
}

void dial( )
{
  int i;
  unsigned char RevData[MAXNUM];
  unsigned char SendData[MAXNUM]="ATD13308491324;";
  
  SendData[15]=0x0d;
  if(write(fd,SendData,16)<0)
  	printf("write error");
  else
  {
  	i=read(fd,RevData,MAXNUM);
  	printf("received %d charater: %s\n",i,RevData);
  }
  
}

void read_rssi()
{
  int i;
  unsigned char RevData[MAXNUM];
  unsigned char SendData[MAXNUM]="at+csq";
    
  SendData[6]=0xd;
  if(write(fd,SendData,7)<0)
  {	
  	printf("write error");
  	
  }	
  else
  {
  	
  	sleep(0);
  	RevData[0]=0;
  	RevData[1]=0;
  	i=read(fd,RevData,MAXNUM);
  	printf("received %d charater: %s\n",i,RevData);
  	
  }
}

void senddata()
{
  int i;
  unsigned char RevData[MAXNUM];
  unsigned char SendData[MAXNUM]="hello,world!";
    
  SendData[13]=0xd;
  if(write(fd,SendData,13)<0)
  {	
  	printf("write error");
  	
  }	
  else
  {
  	printf("hello,world!\n");
  	
  }
}

int recedata()
{
  int i,num;
  unsigned char RevData[MAXNUM];
  unsigned char SendData[MAXNUM]="ate0";
    
  num=read(fd,RevData,MAXNUM);
  
  printf("received %d charater:",num);
  for (i=0;i<num;i++)
  	printf("%x",i,RevData[i]);
  printf("\n");	
    	
}

int detect_g20()
{
  int i;
  unsigned char RevData[MAXNUM];
  unsigned char SendData[MAXNUM]="ate0";
    
  SendData[3]=0xd;
  if(write(fd,SendData,5)<0)
  {	
  	printf("write error");
  	return 0;
  }	
  else
  {
  	
  	sleep(0);
  	RevData[0]=0;
  	RevData[1]=0;
  	i=read(fd,RevData,MAXNUM);
  	printf("received %d charater: %s\n",i,RevData);
  	if ((RevData[0]=='O')&&(RevData[1]=='K'))
  		return 1;
  	else
  		return 0;	
  }
  	
}

main()
{
  int FunctionIndex;
 
  fd = OpenCom1();
  
	 
  if (fd<0) exit(1);
   
  printf("\n");
  printf("+----------------------------------------+\n");
  printf("|      ARM  Linux  wireless module                 |\n");
  printf("+----------------------------------------+\n");
  printf("\n");
  printf("\n Please select the function to test ( Main Menu):");
  printf("\n  1: send data for wireless modules");
  printf("\n  2: receive data for wireless modules");
  printf("\n  0: Exit\n");
 
  for(;;)
  {
   
   	scanf("%d",&FunctionIndex);
   	switch(FunctionIndex)
   	{
   		case 1: senddata();
    			break;	
    		case 2:
    			recedata();
    			break;
   		case 0:
   			exit(1);
   		default: 
   			exit(1); 
   	}
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -