打印
[疑难问答]

如何将串口接收到的数据中有用的部分分离出来?

[复制链接]
2503|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lovelyegle|  楼主 | 2010-1-5 23:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位前辈如何将串口接收到的数据中有用的部分分离出来?
我用的是51单片机,晶振:11.0592MHz,波特率:9600
串口接收到的数据如下:
0000000000002059205601OL1NN00717700000002102OL1NN00717600000002003OL1NN00717700000002004AL1NN00717

7505-0102005AL1NN00717250600002006AL1NN007179505-01020C0087
$GPGGA,065731.00,1053.990170,N,10530.862591,E,5,08,1.0,-
0000.871,M,00000.000,M,0.00,*5DD0000D0000D00000
   我想要把数据中 $GPGGA,065731.00,1053.990170,N,10530.862591,E,5,08,1.0,-

0000.871,M,00000.000,M,0.00,*5D 这一部分分离出来,再由串口发出去。请教各位怎样写C程序。

可否提示下
沙发
xiaoxin1986| | 2010-1-6 00:28 | 只看该作者
串口能接收到小数?

使用特权

评论回复
板凳
David_ming| | 2010-1-6 17:43 | 只看该作者
$GPGGA-------------先找“$”这个字符,然后再看后面是不是“G”,再看后面是不是“P”以此类推

使用特权

评论回复
地板
牛牛特工| | 2010-1-6 17:45 | 只看该作者
GPS模块啊哈哈

使用特权

评论回复
5
sz_n053| | 2010-1-6 20:53 | 只看该作者
若通讯没问题.....看到$ 就开始丢了呗

使用特权

评论回复
6
McuPlayer| | 2010-1-6 21:57 | 只看该作者
通讯帧,找帧头啊

使用特权

评论回复
7
lovelyegle|  楼主 | 2010-1-9 22:47 | 只看该作者
2# xiaoxin1986
这个我也不知道咋弄

使用特权

评论回复
8
lovelyegle|  楼主 | 2010-1-9 22:49 | 只看该作者
5# sz_n053
把后面数据丢了?我要的是后面的啊

使用特权

评论回复
9
lovelyegle|  楼主 | 2010-1-9 22:49 | 只看该作者
6# McuPlayer
咋找啊?稍微具体点,我基础比较差

使用特权

评论回复
10
linhai2009| | 2010-1-9 23:12 | 只看该作者
用if判断语句,中断读一个数判断一下。也可以在所有的数接完之后去处理

使用特权

评论回复
11
suoma| | 2010-1-10 22:41 | 只看该作者
读一个数判断一下,是不是效率太低了啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

640

帖子

1

粉丝