[疑难问答] 如何将串口接收到的数据中有用的部分分离出来?

[复制链接]
3715|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模块啊哈哈
sz_n053 发表于 2010-1-6 20:53 | 显示全部楼层
若通讯没问题.....看到$ 就开始丢了呗
McuPlayer 发表于 2010-1-6 21:57 | 显示全部楼层
通讯帧,找帧头啊
 楼主| lovelyegle 发表于 2010-1-9 22:47 | 显示全部楼层
2# xiaoxin1986
这个我也不知道咋弄
 楼主| lovelyegle 发表于 2010-1-9 22:49 | 显示全部楼层
5# sz_n053
把后面数据丢了?我要的是后面的啊
 楼主| lovelyegle 发表于 2010-1-9 22:49 | 显示全部楼层
6# McuPlayer
咋找啊?稍微具体点,我基础比较差
linhai2009 发表于 2010-1-9 23:12 | 显示全部楼层
用if判断语句,中断读一个数判断一下。也可以在所有的数接完之后去处理
suoma 发表于 2010-1-10 22:41 | 显示全部楼层
读一个数判断一下,是不是效率太低了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

640

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部