找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

基于单片机+GPS定位系统程序+原理图PCB设计

查看数: 13558 | 评论数: 19 | 收藏 22
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-3-29 18:53

正文摘要:

单片机是通用的51,52,stc,原理图中的.ddb、.Bkp等格式是要用protelse打开 GPS数据含义简介 Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息 $GPRMC,<1>,<2>,<3>,<4>, ...

回复

ID:16255 发表于 2022-5-10 23:39
发现一个小Bug。下面这个是楼主GPS.c中的代码,作用是将读到的字符串转换成浮点数。(浮点数可表示正负小数)
static float Str_To_Float(char *buf)
{
        float rev = 0;
        float dat;
        int integer = 1;
        char *str = buf;
        int i;
        while(*str != '\0')
        {
                switch(*str)
                {
                        case '0':
                                dat = 0;
                                break;
                        case '1':
                                dat = 1;
                                break;
                        case '2':
                                dat = 2;
                                break;               
                        case '3':
                                dat = 3;
                                break;
                        case '4':
                                dat = 4;
                                break;
                        case '5':
                                dat = 5;
                                break;
                        case '6':
                                dat = 6;
                                break;
                        case '7':
                                dat = 7;
                                break;
                        case '8':
                                dat = 8;
                                break;
                        case '9':
                                dat = 9;
                                break;
                        case '.':
                                dat = '.';
                                break;
                }
                if(dat == '.')
                {
                        integer = 0;
                        i = 1;
                        str ++;
                        continue;
                }
                if( integer == 1 )
                {
                        rev = rev * 10 + dat;
                }
                else
                {
                        rev = rev + dat / (10 * i);
                        i = i * 10 ;
                }
                str ++;
        }
        return rev;
}
代码中似乎没有考虑到负数的情况。
而实际上是有可能出现负数的。如下图,读出来-5.7m。


但是,我并没有打算改它,因为我用不着这个海拔数据。
而且我把数据都以int的形式储存,更方便处理数据。GPS报文中的数据都是两位小数的,将其乘上100就都能变成整数,就不用以浮点数储存了(int占两个字节,float占四个字节,double占八个字节)。

评分

参与人数 1黑币 +80 收起 理由
admin + 80 回帖助人的奖励!

查看全部评分

ID:840718 发表于 2023-8-2 21:42
历害,向你学习…… GPS是不是要退休了, 能搞一个我们的北斗?
ID:1085441 发表于 2023-7-18 01:41
给大家推荐一个北斗GPS双模模块,HT1612,几年前买的时候是十几元,挺好用的。
ID:1086148 发表于 2023-7-17 21:44
赞楼主! 你好! 非常感兴趣另一位工程师说的GPS语音播报!期待看到你发表作品!
ID:16255 发表于 2022-5-11 16:49
xiamo123 发表于 2020-4-20 09:59
这个代码改一下可以用于BDS嘛?

完全可以。如果单纯是定位,不用改代码,GPS模块从硬件上就支持北斗定位的。
只是卫星列表有点差异,GPS是用$GPGSV报文,北斗是用$BDGSV报文,但他们的格式是一样的,稍稍改一下就能读取北斗列表。
ID:1019040 发表于 2022-4-17 01:47
头文件在附件里面可以下载
ID:99130 发表于 2022-2-20 16:02
GPS的型号是哪种?
ID:284050 发表于 2021-7-7 22:34
确定GPS准确吗(能转换地图中准确定位吗)
ID:650894 发表于 2021-3-24 16:27
gps用的哪个芯片
ID:64253 发表于 2020-8-12 10:51
先MARK一下,坐等北斗的资料,学习
ID:709306 发表于 2020-4-26 18:02
jakcypater 发表于 2020-4-10 16:34
不错不错,去年做过STC12+GPS+LCD12864+语音播报的,最近整理下,也发出来。

能不能发一下程序还有实物图或者资料包啊?
ID:731957 发表于 2020-4-20 09:59
这个代码改一下可以用于BDS嘛?
ID:631770 发表于 2020-4-19 10:43
jakcypater 发表于 2020-4-10 16:34
不错不错,去年做过STC12+GPS+LCD12864+语音播报的,最近整理下,也发出来。

大佬你好,能给个球球号问些问题吗……
ID:731957 发表于 2020-4-18 12:39
jakcypater 发表于 2020-4-10 16:33
有北斗GPS双模的,网络上都有教程。

网上哪里有资源呀
ID:727275 发表于 2020-4-13 13:08
感谢楼主分享基于单片机GPS定位系统设计.
ID:723764 发表于 2020-4-12 20:29
jakcypater 发表于 2020-4-10 16:34
不错不错,去年做过STC12+GPS+LCD12864+语音播报的,最近整理下,也发出来。

蹲一个大神
ID:523982 发表于 2020-4-10 16:34
不错不错,去年做过STC12+GPS+LCD12864+语音播报的,最近整理下,也发出来。
ID:523982 发表于 2020-4-10 16:33
xmfjfhcel 发表于 2020-3-30 10:39
历害,向你学习…… GPS是不是要退休了, 能搞一个我们的北斗不嘛

有北斗GPS双模的,网络上都有教程。
ID:626079 发表于 2020-3-30 10:39
历害,向你学习…… GPS是不是要退休了, 能搞一个我们的北斗不嘛

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表