找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7732|回復: 7
打印 上一主題 下一主題
收起左側(cè)

[求助]請教各位如何將串口接收到的數(shù)據(jù)中有用的部分分離出來?

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:17521 發(fā)表于 2010-1-5 21:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

請教各位前輩如何將串口接收到的數(shù)據(jù)中有用的部分分離出來?
我用的是51單片機,晶振:11.0592MHz,波特率:9600
串口接收到的數(shù)據(jù)如下:
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
   我想要把數(shù)據(jù)中 $GPGGA,065731.00,1053.990170,N,10530.862591,E,5,08,1.0,-

0000.871,M,00000.000,M,0.00,*5D 這一部分分離出來,再由串口發(fā)出去。請教各位怎樣寫C程序。我的郵箱:

630034911@126.com

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:17521 發(fā)表于 2010-1-8 00:53 | 只看該作者

感謝高手指教,這是我寫的程序,但是有問題
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar dat[50];
uint i;
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1)
{
if(flag==1)
{
     ES=0;
flag=0;
     for(i=2;i <7;i++)
     {
     SBUF=dat[ i];
     while(!TI);
     TI=0;
     }
ES=1;
}
}
}
void ser() interrupt 4
{
RI=0;
dat[50]=SBUF;
flag=1;
}
不知為什么串口調(diào)試助手收到的是:00 00 00 00 00 請高手指教

回復

使用道具 舉報

板凳
ID:20780 發(fā)表于 2010-1-8 12:25 | 只看該作者
 "SBUF=dat[ i]"  dat[50]里沒內(nèi)容!
回復

使用道具 舉報

地板
ID:17521 發(fā)表于 2010-1-8 18:47 | 只看該作者

謝謝你的幫助,請問程序應該怎么改呀?

 

回復

使用道具 舉報

5#
ID:20780 發(fā)表于 2010-1-9 10:42 | 只看該作者
將發(fā)送的內(nèi)容放到dat[]中試試
回復

使用道具 舉報

6#
ID:17521 發(fā)表于 2010-1-10 22:21 | 只看該作者
非常感謝您的指導,我的程序?qū)懞昧,多謝
回復

使用道具 舉報

7#
ID:801818 發(fā)表于 2020-7-12 22:44 | 只看該作者
l630034911 發(fā)表于 2010-1-10 22:21
非常感謝您的指導,我的程序?qū)懞昧,多謝

請問你修改后是怎樣的,我也在找這個問題
回復

使用道具 舉報

8#
ID:801818 發(fā)表于 2020-7-12 22:45 | 只看該作者
l630034911 發(fā)表于 2010-1-10 22:21
非常感謝您的指導,我的程序?qū)懞昧,多謝

你確定你的程序已經(jīng)成功啦?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表