MATLAB解析GPS数据程序.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

%注:本程序可直接在MATLAB2017a中运行

%该脚本文件用于学习GPS数据得读取,需要做其她用途请自行修改代码

%本脚本文件得前面几行代码就就是要设置得一些参数

%默认使用3(需视情况修改)

%波特率设为GPS模块默认得38400

%下面为程序源码

clear

num_execute=100;%执行次数

num_SingleRead=150;%单次从串口读取得字节数(最好设置足够大(最低大概设为80),保证单次读取得数据包含一条完整得GPS数据)

Timedelay=0、2;%用于延时读取串口数据

BaudRate=38400;%读取数据得波特率

Terminator=CR;

num_MaxTry=5;%打开串口得最多尝试次数

BytesAvailableFcnCount=1000;

%%设置参数

%delete(instrfindall);%串口打开失败时使用此句

%delete(s);clears%串口打开失败时使用此句

serial3=serial(3);

%串口设置

serial3、BytesAvailableFcnMode='byte';

%serial3、InputBufferSize=38400;%输出波特率

serial3、BaudRate=BaudRate;%读入波特率

%serial3、OutputBufferSize=1024;

serial3、BytesAvailableFcnCount=BytesAvailableFcnCount;

serial3、ReadAsyncMode=continuous;

serial3、Terminator=Terminator;

%%打开串口

count_opentimes=1;

whilecontains(serial3、status,closed)0count_opentimesnum_MaxTry

fopen(serial3);%打开串口

count_opentimes=count_opentimes+1;

end

ifcontains(serial3、status,'open)<1

disp(openfailed!);

return

end

%%读取并处理数据

%初始化

GPS_Data=GPS_Init();

while(num_execute0)

GPS_DataStrs=fread(serial3,num_SingleRead,char);%一次读出10个字符

GPS_DataStrs=reshape(GPS_DataStrs,1,[]);

GPS_DataStrs=split_str2strs(GPS_DataStrs);

GPS_Data_tmp=get_GPS_specificData(GPS_DataStrs);

GPS_Data=Updata_GPU_Data(GPS_Data,GPS_Data_tmp);

show_GPS_Data(GPS_Data);

pause(Timedelay);%延时

num_execute=num_execute-1;

end

%fprintf(s,'abcd);%给串口得发送数据

%fscanf(s);%从串口得接收缓存读数据

%%关闭串口并删除相关数据

fclose(serial3);%关闭串口

delete(serial3);

clearserial3

%%

%将字符串根据'\r\n'划分成多个子字符串,同时去掉首尾无用得残余字符串

functionout_strs=split_str2strs(StrData)

ifcontains(class(StrData),char)

uint8(StrData);

end

record=get_pos_enterflag(StrData);

ifStrData(1)==uint8($)%开头为$得情况

flag_start=1;

else

ifsize(record,2)0

flag_start=record(1)+2;

else

out_strs=cell(0,0);

文档评论(0)

kch + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年10月08日上传了教师资格证

1亿VIP精品文档

相关文档