资源简介
自己写的C代码GPS数据解析程序/正在进行的是基于MINIGUI的GPS导航项目。。。完成后将续传。。。eeweifeng111@q63.com
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define GPS_RECV_CMD_MAX_BUF 256
struct termios newtio oldtio;
int set_opt(int fdint nSpeed int nBits char nEvent int nStop)
{
if (tcgetattr(fd &oldtio) != 0) {
perror(“SetupSerial 1“);
return -1;
}
newtio = oldtio;
newtio.c_cflag &= ~CSIZE;
switch(nBits)
{
case 7:
newtio.c_cflag |= CS7;
break;
case 8:
newtio.c_cflag |= CS8;
break;
}
switch(nEvent)
{
case ‘O‘:
newtio.c_cflag |= PARENB;
newtio.c_cflag |= PARODD;
newtio.c_iflag |= (INPCK | ISTRIP);
break;
case ‘E‘:
newtio.c_iflag |= (INPCK | ISTRIP);
newtio.c_cflag |= PARENB;
newtio.c_cflag &= ~PARODD;
break;
case ‘N‘:
newtio.c_cflag &= ~PARENB;
break;
}
switch(nSpeed)
{
case 2400:
cfsetispeed(&newtio B2400);
cfsetospeed(&newtio B2400);
break;
case 4800:
cfsetispeed(&newtio B4800);
cfsetospeed(&newtio B4800);
break;
case 9600:
cfsetispeed(&newtio B9600);
cfsetospeed(&newtio B9600);
break;
case 115200:
cfsetispeed(&newtio B115200);
cfsetospeed(&newtio B115200);
break;
default:
cfsetispeed(&newtio B9600);
cfsetospeed(&newtio B9600);
break;
}
if(nStop == 1)
newtio.c_cflag &= ~CSTOPB;
else if (nStop == 2)
newtio.c_cflag |= CSTOPB;
newtio.c_cflag |= CLOCAL | CREAD;
newtio.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);// raw mode output no echo.
newtio.c_oflag &= ~OPOST;//turn off out control bits
newtio.c_cc[VTIME] = 0;
newtio.c_cc[VMIN] = 1;
tcflush(fd TCIOFLUSH);
if((tcsetattr(fd TCSANOW &newtio)) != 0)
{
perror(“com set error“);
return -1;
}
printf(“set done!\n“);
return 0;
}
int open_port(int fdint comport)
{
if (comport == 1)
{ fd = open( “/dev/ttyS0“ O_RDWR | O_NOCTTY | O_NDELAY);
if (-1 == fd){
perror(“Can‘t Open Serial Port“);
return(-1);
}
else
printf(“open ttyS0 .....\n“);
}
else if(comport == 2)
{ fd = open( “/dev/ttyUSB0“ O_RDWR | O_NOCTTY | O_NDELAY);// | O_NONBLOCK
if (-1 == fd){
perror(“Can‘t Open Serial Port“);
return(-1);
}
else
printf(“open ttyS1 .....\n“);
}
else if (comport == 3)
{
fd = open( “/dev/ttyS2“ O_RDWR | O_NOCTTY | O_NDELAY);
if (-1 == fd){
perror(“Can‘t Open Serial Port“);
return(-1);
}
else
printf(“open ttyS2 .....\n“);
}
if(fcntl(fd F_SETFL 0) < 0)//fcntl(fd F_GETFL 0) & ~O_NONBLOCK
printf(“fcntl failed!\n“);
else
printf(“fcntl=%d\n“ fcntl(fd F_GETFL 0));
if(isatty(STDIN_FILENO) == 0)
printf(“standard input is not a terminal device\n“);
else
printf(“isatty success!\n“);
printf(“fd-open=%d\n“ fd);
return fd;
}
typedef struct GGAINFO {
int bIsGPGGA;
unsigned char hour bjhour min sec secFrac;
- 上一篇:中文latex教程-Ishort-cn
- 下一篇:微机原理课程设计压力测控系统
相关资源
- 校运动会管理系统.zip
- 教师信息和学生成绩管理系统
- ADXL345模块 51程序
- 单片机频率计数器
- 编译原理课程设计:基于表达式的计
- lzw压缩与解压
- PID C 语言算法DSP2812PWM
- 班级档案管理系统
- C 程序设计学生宿舍管理系统
- TDC-GP2激光测距应用
- XX管理系统
- GPS NMEA协议解析.NET库
- 中南民大数据结构-八皇后问题含实验
- 电磁环岛相关资料.zip
- 人机交互实验-命令行菜单界面
- 中缀表达式求值
- 基于DSP的语音录放实验程序
- 一个随笔画程序
- 标准C实现FTP上传功能
- 中南大学单片机课设 密码锁
- 交通灯控制系统
- funcode坦克大战源码
- 数据结构与算法全集C源代码+详细注释
- Open62541 win32 动态库
- Proteus8.9 VSM Studio WINAVR编译器仿真ATM
- 温度测试代码加仿真图protues
- 截图、抓屏程序纯C实现
- C代码版本的HTTP POST上传文件/JSON
- 图书管理系统数据
- 进程调度 时间片轮转与优先级 作业调
评论
共有 条评论