分享

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

 昵称13026973 2014-09-30

matlab程序读取单片机通过串口传来的IMU角度数据,并用曲线显示出来。

上传的值为float型,每个数据后有回车符。范围90~-90

 

主文件 serial_test2.m

  1. %%  
  2. clc;  
  3.   
  4. global t;  
  5. global x;  
  6. global m;  
  7. global ii;  
  8.   
  9. t = [0];  
  10. m = [0];  
  11. ii = 0;  
  12. x = -100;  
  13. p = plot(t,m,'EraseMode','background','MarkerSize',5);  
  14. axis([x-200 x+200 -90 90]);  
  15. grid on;  
  16.   
  17. %%  
  18.   
  19. try  
  20.     s=serial('com4');  
  21. catch  
  22.     error('cant serial');  
  23. end  
  24. set(s,'BaudRate', 115200,'DataBits',8,'StopBits',1,'Parity','none','FlowControl','none');  
  25. s.BytesAvailableFcnMode = 'terminator';  
  26. s.BytesAvailableFcn = {@callback,p};  
  27.   
  28. fopen(s);  
  29.   
  30. pause;  
  31. fclose(s);  
  32. delete(s);  
  33. clear s  
  34. close all;  
  35. clear all;  

 

回调函数 callback.m

  1. %%  
  2. function callback(s, BytesAvailable,p)  
  3.       
  4.     global t;  
  5.     global x;  
  6.     global m;  
  7.     global ii;  
  8.   
  9.     out = fscanf(s);  
  10.     data = str2num(out)  
  11.       
  12.     t = [t ii];  
  13.     m = [m data];  
  14.     set(p, 'XData',t,'YData',m(1,:));  
  15.       
  16.     drawnow  
  17.     x = x + 1;  
  18.     axis([x-200 x+200 -90 90]);  
  19.     ii=ii+1;  
  20. end  



  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多