资源简介
自己写的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
- 下一篇:微机原理课程设计压力测控系统
相关资源
- MP3文件ID3v2ID3v2APEv2标签读取
- 课程作业:模拟仓库管理系统
- 开源的nmealib
- 一个简单实用个人日记管理系统
- 带时间温度显示的室内灯光控制系统
- 成绩管理系统(数据结构)
- FIR低通滤波器 ccs运行环境
- C malloc函数用法
- 嵌入式局域网聊天系统客户端
- 算法竞赛入门经典 第2版刘汝佳+高清
- 基于单片机的GPS定位及显示系统设计
- 链表实现通讯录管理系统
- PowerShell-6.2.1-win-x86.zip
- pl/0编译器 语法分析
- 源程序阅读与调试课程设计报告--学生
- 谁说程序员不浪漫?!基于easyX图形库
- 编译原理课设c编译器
- MCP3421 STM32 Driver
- ADS1100 STM32 Driver
- NemaStudio1.36 NMEA模拟工具软件最新+注册
- 单片机89c52与MLX90614红外的测温程序
- stm32f103AES加密 cbc模式
- 单片机 点阵 字模提取软件
- C高级编程讲义-传智播客
- NOIP必学内容之前缀和与差分颜鸿宇
- Skyline高效检索算法实现.zip
- STM8S103系列IO模拟串口通信实现真正串
- stm32f103c8t6移植uC/OS-III基于HAL库的工程
- 温度、一氧化碳、二氧化碳、PM2.5以及
- 王道论坛计算机考研机试指南
评论
共有 条评论