gaoyang9992006 发表于 2016-4-7 10:52

matlab读取串口数据并显示曲线

**** Hidden Message *****

gaoyang9992006 发表于 2016-4-7 10:54


%%%%%%%%%%%%%%%%%%%%%%%%串口接收函数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%thomas1847,2007.1.22%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%注:查询方式
function serialcomm                                                      
web -browser
clear;clc;                                                               %清除变量
g=serial('com1');                                                          %创建串口对象
g.baudrate=2400;                                                         %设置波特率,缺省9600bit/s
g.parity='none';                                                         %无奇偶校验
g.stopbits=1;                                                            %停止位
g.timeout=0.5;                                                             %设置读操作完成时间为1s,缺省10s                                          
g.inputbuffersize=256;                                                   %输入缓冲区为32b,缺省值为512b
%设置
recbuf=zeros(1,40);                                                      %清接收缓冲区(40)      
framelen=23;                                                               %帧长度(每帧23byte)
framenum=0;                                                                %清接收帧数
rectr=0;                                                                   %接收计数器清零
xctr=0;
%输入接收的数据帧数
recnum= input('请输入要接收的数据帧数:\n');                                 %输入接收帧数                                                                      %清
%打开串口设备
fopen(g);                                                                  %打开串口设备对象g
%进入接收循环
while framenum<recnum                                                      %
       recdta=fread(g,1,'uint8');                                          %读入数据
       if recdta==255                                                      %找帧头
          rectr=rectr+1;                                                   %接收计数器加1
          recbuf(rectr)=recdta;                                          %送入接收缓冲区      
       elseif recdta==framelen&rcbuf(1)==255                               %验证接收长度和帧头
          framelen=recdta;                                                 %取帧长度
          rectr=rectr+1;                                                   %接收计数器加1
          recbuf(rectr)=recdta;                                          %送入接收缓冲区
       elseif rectr>1&rectr<framelen                                       %接收数据
          rectr=rectr+1;                                                   %接收计数器加1
          recbuf(rectr)=recdta;                                          %送入接收缓冲区
          if rectr==framelen                                             %如果接收完进行处理
             rectr=0;                                                      %清接收计数器
             framenum=framenum+1;                                          %帧数累加
             %可根据具体通讯协议提取数据,例如:data1~data4
             data1=(recbuf(3)*256^3+recbuf(4)*256^2+recbuf(5)*256+recbuf(6))/100;      %接收原始数据
             data2=(recbuf(7)*256^3+recbuf(8)*256^2+recbuf(9)*256+recbuf(10))/100;   %接收非线性补偿后的数据
             data3=(recbuf(11)*256^3+recbuf(12)*256^2+recbuf(13)*256+recbuf(14))/100;%接收蠕变补偿后的数据
             data4=(recbuf(15)*256^3+recbuf(16)*256^2+recbuf(17)*256+recbuf(18))/100;%接收滤波后的数据
             fprintf('%8.2f    %8.2f   %8.2f    %8.2f\n',data1,data2,data3,data4)      %输出显示
             %可根据具体通讯协议取出数据
          end
       else rectr=0;                                                       %未找到帧头清计数器
       end                                                               %接收结束   
end                                                                        %主循环结束                                                                              
%程序结束关闭串口类
fclose(g);                                                               %关闭串口                                                               
delete(g);                                                               %删除串口对象
clear g ;                                                                  %清除变量
end




lvyunhua 发表于 2016-4-7 16:00

没有图片曲线展示吗!

gaoyang9992006 发表于 2016-4-8 18:12

lvyunhua 发表于 2016-4-7 16:00
没有图片曲线展示吗!

没有,那个可以根据绘图函数自己修改。

854552391 发表于 2016-4-13 17:42

本帖最后由 cooldog123pp 于 2021-9-25 17:15 编辑

6666666666666666666666666感谢楼主分享~

gaoyang9992006 发表于 2016-4-13 20:08

854552391 发表于 2016-4-13 17:42
6666666666666666666666666

哈哈,你总是这么调皮

man2man 发表于 2016-4-14 08:51

看一看

gaoyang9992006 发表于 2016-4-14 11:49

man2man 发表于 2016-4-14 08:51
看一看

不用再为不会用VS做串口客户端发愁了。

854552391 发表于 2016-4-14 19:49

楼主有没有 matlab 飞思卡尔的 上位机程序或者 教程啊   我是小白。。。

gaoyang9992006 发表于 2016-4-15 10:17

854552391 发表于 2016-4-14 19:49
楼主有没有 matlab 飞思卡尔的 上位机程序或者 教程啊   我是小白。。。





给你找了个教程,很不错,应该可以帮你完成。

a20084666 发表于 2016-4-18 12:14

什么东西,想看看

wllty520 发表于 2016-4-18 20:24

本帖最后由 cooldog123pp 于 2021-9-25 17:16 编辑

哈哈哈哈哈哈哈哈哈哈哈 感谢楼主分享~

gaoyang9992006 发表于 2016-4-19 10:09

wllty520 发表于 2016-4-18 20:24
哈哈哈哈哈哈哈哈哈哈哈

xiexie .

QQ745021926 发表于 2016-4-19 13:55

支持楼主

gaoyang9992006 发表于 2016-4-19 13:58

QQ745021926 发表于 2016-4-19 13:55
支持楼主

非常感谢。

天干物燥 发表于 2016-4-26 22:35

撒打算打打打算打多少瓦的

comprends 发表于 2016-4-27 00:33

急需,看看

李不走寻常路 发表于 2016-4-27 09:17

leetoun 发表于 2016-4-28 14:41

学习学习

gaoyang9992006 发表于 2016-4-28 20:08

leetoun 发表于 2016-4-28 14:41
学习学习

给你推荐个编程框架:QT。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: matlab读取串口数据并显示曲线