久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: Matlab串口波形刷新和數據分析m文件 [打印本頁]

作者: CHENYIXIAO    時間: 2021-9-25 11:58
標題: Matlab串口波形刷新和數據分析m文件
V7-203_Matlab串口波形刷新和數據分析m文件
  1. % ********************************************************************************************************************
  2. % ********************************************************************************************************************
  3. close all
  4. clear all

  5. %刪除所有已經打開的串口,這條很重要,防止之前運行沒有關閉串口
  6. delete(instrfindall);  

  7. %打開串口COM1,波特率115200,8位數據位,1位停止位,無奇偶校驗,無流控制
  8. s = serial('COM1', 'BaudRate', 115200, 'DataBits', 8, 'StopBits', 1, 'Parity', 'none', 'FlowControl', 'none');
  9. s.ReadAsyncMode = 'continuous';
  10. fopen(s);

  11. fig = figure(1);

  12. % ********************************************************************************************************************
  13. AxisMax =  65536;    %坐標軸最大值
  14. AxisMin = -65536;    %坐標軸最小值
  15. window_width = 800;  %窗口寬度

  16. g_Count =0;          %接收到的數據計數
  17. SOF = 0;             %同步幀標志
  18. AxisValue = 1;       %坐標值
  19. RecDataDisp = zeros(1,100000); %開辟100000個數據單元,用于存儲接收到的數據。
  20. RecData = zeros(1,100);        %開辟100個數據單元,用于數據處理。
  21. Axis = zeros(1,100000);        %開辟100000個數據單元,用于X軸。

  22. window = window_width * (-0.9); %窗口X軸起始坐標
  23. axis([window, window + window_width, AxisMin, AxisMax]); %設置窗口坐標范圍

  24. %子圖1顯示串口上傳的數據
  25. subplot(2,1,1);
  26. grid on;
  27. title('串口數據接收');
  28. xlabel('時間');
  29. ylabel('數據');

  30. %子圖2顯示波形的幅頻響應
  31. subplot(2,1,2);
  32. grid on;
  33. title( 'FFT');
  34. xlabel( '頻率');
  35. ylabel( '幅度');

  36. Fs = 100;        % 采樣率
  37. N = 50;         % 采樣點數
  38. n = 0:N-1;      % 采樣序列
  39. f = n * Fs / N; %真實的頻率

  40. % ********************************************************************************************************************

  41. while ishandle(fig)
  42.    
  43.     %設置同步信號標志, = 1表示接收到下位機發送的同步幀
  44.     SOF = 0;  
  45.    
  46.     %發送同步幀
  47.     fwrite(s, 13);
  48.    
  49.     %獲取是否有數據
  50.     bytes = get(s, 'BytesAvailable');
  51.     if bytes == 0
  52.          bytes = 1;
  53.     end
  54.    
  55.     %讀取下位機返回的所有數據
  56.     RecData = fread(s, bytes, 'uint8');
  57.    
  58.     %檢索下位機返回的數據中是否有字符$
  59.     StartData = find(RecData == 13);
  60.    
  61.     %如果檢索到$,讀取10個字節的數據,也就是5個uint16的數據
  62.     if(StartData >= 1)
  63.         RecData = fread(s, 5, 'uint16');
  64.         SOF =1;
  65.         StartData = 0;
  66.     end
  67.    
  68. %更新接收到的數據波形
  69. if(SOF == 1)
  70.         %更新數據
  71.         RecDataDisp(AxisValue) =  RecData(1);
  72.         RecDataDisp(AxisValue + 1) =  RecData(2);
  73.         RecDataDisp(AxisValue + 2) =  RecData(3);
  74.         RecDataDisp(AxisValue + 3) =  RecData(4);
  75.         RecDataDisp(AxisValue + 4) =  RecData(5);
  76.        
  77.         %更新X軸
  78.         Axis(AxisValue) = AxisValue;
  79.         Axis(AxisValue + 1) = AxisValue + 1;
  80.         Axis(AxisValue + 2) = AxisValue + 2;
  81.         Axis(AxisValue + 3) = AxisValue + 3;
  82.         Axis(AxisValue + 4) = AxisValue + 4;

  83.         %更新變量
  84.         AxisValue = AxisValue + 5;
  85.         g_Count = g_Count + 5;
  86.        
  87.         %繪制波形
  88.         subplot(2,1,1);
  89.         plot(Axis(1:AxisValue-1),  RecDataDisp(1:AxisValue-1), 'r');
  90.         window = window + 5;
  91.         axis([window, window + window_width, AxisMin, AxisMax]);
  92.         grid on;
  93.         title('串口數據接收');
  94.         xlabel('時間');
  95.         ylabel('數據');
  96.         drawnow
  97. end
  98.    
  99. if(g_Count== 50)
  100.    subplot(2,1,2);
  101.    %對原始信號做 FFT 變換
  102.    y = fft(RecDataDisp(AxisValue-50:AxisValue-1), 50);
  103.    
  104.    %求 FFT 轉換結果的模值
  105.    Mag = abs(y)*2/N;  
  106.    
  107.    %繪制幅頻相應曲線
  108.    plot(f, Mag, 'r');
  109.    grid on;
  110.    title( 'FFT');
  111.    xlabel( '頻率');
  112.    ylabel( '幅度');
  113.    g_Count = 0;
  114.    drawnow
  115. end

  116. end

  117. fclose(s);
  118. delete(s);

  119. % ********************************************************************************************************************
復制代碼







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 中文字幕免费在线 | 99久久久久| 福利视频一区 | av二区三区| 91精品国产日韩91久久久久久 | 国产激情在线观看 | 韩国主播午夜大尺度福利 | 久久这里只有 | 久久最新| 国产精品亚洲一区二区三区在线观看 | 91在线观看| 亚洲一区 中文字幕 | 成人免费在线视频 | 亚洲91视频 | 亚洲成人网在线观看 | 精品一区二区三区在线视频 | 国产二区三区 | 日韩欧美在线一区 | 男女一区二区三区 | 欧洲一区二区三区 | 成人免费观看男女羞羞视频 | 欧美成人一区二区 | 欧美精品一区二区三区在线播放 | 国产一区二区在线免费播放 | 日韩 欧美 综合 | 亚洲免费一区二区 | 国产精久久久久久 | 久久国产婷婷国产香蕉 | 视频一区二区三区四区五区 | 欧州一区 | 天堂在线网 | 国产欧美精品一区二区三区 | 午夜精品久久久久久久 | 中文字幕一区二区三区四区五区 | 一区二区三区不卡视频 | 久久99视频精品 | 视频在线一区二区 | 91亚洲国产成人久久精品网站 | 国产精品久久久久久久久久 | a欧美 | 91麻豆精品国产91久久久更新资源速度超快 |