日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 互聯(lián)網(wǎng) > 從串口設(shè)置、讀取、并分析um220模塊的數(shù)據(jù)

從串口設(shè)置、讀取、并分析um220模塊的數(shù)據(jù)

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-10-03 08:00:01 閱讀次數(shù):4065次

好久沒(méi)有寫(xiě)博客了,先從一個(gè)小小的程序開(kāi)始一段新的歷程吧;

最近的項(xiàng)目主要還是用的的是linux系統(tǒng),這篇文章主要介紹如何從設(shè)置、讀取BD+gps模塊(um220),實(shí)際上主要是對(duì)串口(UART)的操作。

/* * gps.c * * um220 test * * Author: Wang Zhengkai <449811900@qq.com> * */ #include <stdio.h> #include <termios.h> #include <strings.h> #include <string.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h>
/*我用的是ubuntu的電腦測(cè)試的,使用的串口是ttyS0*/ #define DEV_NODE "/dev/ttyS0" #define MAX_PACKET_SIZE 1024 /* Initialize serial port options */ static void setTermios(struct termios * pNewtio, int uBaudRate) { bzero(pNewtio, sizeof(struct termios)); /* clear struct for new port settings */ //8N1 pNewtio->c_cflag = uBaudRate | CS8 | CREAD | CLOCAL; pNewtio->c_iflag = IGNPAR; pNewtio->c_oflag = 0; pNewtio->c_lflag = 0; //non ICANON } /*設(shè)置um220串口的波特率9600,并刷新使其立即生效*/ void um220_uart_init(int ttyFd,struct termios *oldtio,struct termios *newtio) { tcgetattr(ttyFd, oldtio); /* save current serial port settings */ setTermios(newtio, B9600); tcflush(ttyFd, TCIFLUSH); tcsetattr(ttyFd, TCSANOW, newtio); } /*Analysis Data of um220*/ void parseData(char *buf) { int nQ, nN, nB, nC; char cX, cY, cM1, cM2; float fTime, fX, fY, fP, fH, fB, fD; if (buf == NULL) { printf("error: Can't get buf! "); return; } sscanf(buf,"$GNGGA,%f,%f,%c,%f,%c,%d,%02d,%f,%f,%c,%f,%c,%f,%04d%02x",&fTime,&fX,&cX,&fY,&cY,&nQ,&nN,&fP,&fH,&cM1,&fB,&cM2, &fD, &nB, &nC); printf("x: %c %f, y: %c %f, h %f, satellite: %d ",cX, fX, cY, fY, fH, nN);
/*cX:N or S;fX:緯度;cY:E or W;fY:經(jīng)度;fH:height;nN:衛(wèi)星個(gè)數(shù)*/ } int main(void) { int nb,command; int um220_fd = -1; char newbuf[MAX_PACKET_SIZE]; char msg[20],*ret=NULL; struct termios oldtio, newtio; /*Open Um220 Module*/ if ((um220_fd = open(DEV_NODE, O_RDWR)) < 0) { printf("error: Can't open serial port %s! ", DEV_NODE); return -1; } /*Init Uart for Um220*/ um220_uart_init(um220_fd,&oldtio,&newtio); /*Set Um220 options*/ printf("Please select modules of um220 "); printf("1.BD module "); printf("2.GPS module "); printf("3.BD+GPS module "); if(scanf("%d",&command) != 1) { printf("error:input is wrong! "); } switch(command) { case 1: memset(msg, 0, sizeof(msg)); strcpy(msg,"$cfgsys,h01"); if(write(um220_fd,msg,sizeof(msg)) < 0) printf("Failed to set BD modules! "); break; case 2: memset(msg, 0, sizeof(msg)); strcpy(msg,"$cfgsys,h10"); if(write(um220_fd,msg,sizeof(msg)) < 0) printf("Failed to set GPS modules! "); break; case 3: memset(msg, 0, sizeof(msg)); strcpy(msg,"$cfgsys,h11"); if(write(um220_fd,msg,sizeof(msg)) < 0) printf("Failed to set BD+GPS modules! "); break; default: printf("Can't identify command,set BD+GPS modules! "); memset(msg, 0, sizeof(msg)); strcpy(msg,"$cfgsys,h11"); if(write(um220_fd,msg,sizeof(msg)) < 0) printf("Failed to set BD+GPS modules! "); } for(;;) { /*Read Data from Um220*/ memset(newbuf, 0, 1024); nb = read(um220_fd, newbuf, MAX_PACKET_SIZE); if (nb == -1) { perror("read uart error"); return -1; } if ((ret=strstr(newbuf, "$GNGGA")) != NULL) { /*Analysis Data*/ parseData(ret); } sleep(1); } /*Recover Settings Of Serial Port*/ tcsetattr(um220_fd,TCSANOW,&oldtio); /*Close Um220_fd*/ close(um220_fd);
return 0; }


生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線(xiàn)----------------------------
分享到:
------分隔線(xiàn)----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 日韩精品视频免费在线观看 | 成人性视频在线 | 亚洲一级片 | 国产视频久久久 | 国产伦精品一区二区三区视频黑人 | 经典三级第一页 | 三级电影免费 | 精产国产伦理一二三区 | xxxx网 | 国产一二三区在线 | 亚洲免费a | 色综合天天综合网国产成人网 | 欧美嫩草 | 欧美黄色一级 | 99久久精品毛片免费播放高清 | 久久国产一区二区 | 345成人看片 | 国产小视频在线 | 97av视频在线 | 国产成人精品一区二区三区在线 | 色婷婷一区二区三区 | 一级毛片在线视频 | 国产精品一区二区三区久久久 | 日韩国产一区 | 日韩三级在线 | 福利久久| 91久久国产综合久久蜜月精品 | 欧美成人精品二区三区99精品 | 特黄一区 | 伊人久久亚洲 | 中文字幕一区二区三区在线观看 | 国产精品视频免费看 | 欧美一级片 | 亚洲午夜视频在线观看 | 在线天堂v| 麻豆精品网站 | 日韩午夜影院 | 国产自产 | 欧美日韩黄色 | av一区二区三区四区 | 国产精品久久久久久久第一福利 |