GPS
0赞
发表于 4/12/2016 3:21:30 PM
阅读(1185)
注意:这时候得到的是原始数据,也就是一些字符,我们想要用到这些数据,往往要将其转换为其他类型的数据,比如:整形、实型etc...在我的程序中,我只要$GPRMC这种数据格式传出来的纬度和经度信息,想要在程序中运用这些信息,当然不能用字符的形式、那么就要想点办法了,我想要将经纬度信息转化成float型的数据,那怎么办呢?我们都知道数字的字符是ASCII码,字符‘0’的ASCII码是48,假如我得到的数据是字符‘6’,我想要将这个字符6转化为数字6,那怎么办呢?很简单,我的处理方式如下:int k; char b='6'; k=b-'0'; 没错,用字符6对应的ASCII码减去字符0的ASCII码,就得到数字的6了;然后你看你读到的这个字符实在数据的个位、十位还是百位上,乘以一个相应的倍数(如百位:k*=100,千位:k*=1000);然后再将这些数据加起来就是了。 还有值得一提的是,想要找到你对应的数据并不用去数逗号,那样反而麻烦了,NMEA传出来的数据格式都是固定的,你只要找到你想要的数据在你存数据的数组的哪一位上,就可以对这个数据进行处理了。 (比如:$GPRMC的第19位到第28位的数据是纬度信息,你只要从第十八位开始处理纬度信息,叠加到第28位就好了);
