久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
Matlab串口波形刷新和數據分析m文件
[打印本頁]
作者:
CHENYIXIAO
時間:
2021-9-25 11:58
標題:
Matlab串口波形刷新和數據分析m文件
V7-203_Matlab串口波形刷新和數據分析m文件
% ********************************************************************************************************************
% ********************************************************************************************************************
close all
clear all
%刪除所有已經打開的串口,這條很重要,防止之前運行沒有關閉串口
delete(instrfindall);
%打開串口COM1,波特率115200,8位數據位,1位停止位,無奇偶校驗,無流控制
s = serial('COM1', 'BaudRate', 115200, 'DataBits', 8, 'StopBits', 1, 'Parity', 'none', 'FlowControl', 'none');
s.ReadAsyncMode = 'continuous';
fopen(s);
fig = figure(1);
% ********************************************************************************************************************
AxisMax = 65536; %坐標軸最大值
AxisMin = -65536; %坐標軸最小值
window_width = 800; %窗口寬度
g_Count =0; %接收到的數據計數
SOF = 0; %同步幀標志
AxisValue = 1; %坐標值
RecDataDisp = zeros(1,100000); %開辟100000個數據單元,用于存儲接收到的數據。
RecData = zeros(1,100); %開辟100個數據單元,用于數據處理。
Axis = zeros(1,100000); %開辟100000個數據單元,用于X軸。
window = window_width * (-0.9); %窗口X軸起始坐標
axis([window, window + window_width, AxisMin, AxisMax]); %設置窗口坐標范圍
%子圖1顯示串口上傳的數據
subplot(2,1,1);
grid on;
title('串口數據接收');
xlabel('時間');
ylabel('數據');
%子圖2顯示波形的幅頻響應
subplot(2,1,2);
grid on;
title( 'FFT');
xlabel( '頻率');
ylabel( '幅度');
Fs = 100; % 采樣率
N = 50; % 采樣點數
n = 0:N-1; % 采樣序列
f = n * Fs / N; %真實的頻率
% ********************************************************************************************************************
while ishandle(fig)
%設置同步信號標志, = 1表示接收到下位機發送的同步幀
SOF = 0;
%發送同步幀
fwrite(s, 13);
%獲取是否有數據
bytes = get(s, 'BytesAvailable');
if bytes == 0
bytes = 1;
end
%讀取下位機返回的所有數據
RecData = fread(s, bytes, 'uint8');
%檢索下位機返回的數據中是否有字符$
StartData = find(RecData == 13);
%如果檢索到$,讀取10個字節的數據,也就是5個uint16的數據
if(StartData >= 1)
RecData = fread(s, 5, 'uint16');
SOF =1;
StartData = 0;
end
%更新接收到的數據波形
if(SOF == 1)
%更新數據
RecDataDisp(AxisValue) = RecData(1);
RecDataDisp(AxisValue + 1) = RecData(2);
RecDataDisp(AxisValue + 2) = RecData(3);
RecDataDisp(AxisValue + 3) = RecData(4);
RecDataDisp(AxisValue + 4) = RecData(5);
%更新X軸
Axis(AxisValue) = AxisValue;
Axis(AxisValue + 1) = AxisValue + 1;
Axis(AxisValue + 2) = AxisValue + 2;
Axis(AxisValue + 3) = AxisValue + 3;
Axis(AxisValue + 4) = AxisValue + 4;
%更新變量
AxisValue = AxisValue + 5;
g_Count = g_Count + 5;
%繪制波形
subplot(2,1,1);
plot(Axis(1:AxisValue-1), RecDataDisp(1:AxisValue-1), 'r');
window = window + 5;
axis([window, window + window_width, AxisMin, AxisMax]);
grid on;
title('串口數據接收');
xlabel('時間');
ylabel('數據');
drawnow
end
if(g_Count== 50)
subplot(2,1,2);
%對原始信號做 FFT 變換
y = fft(RecDataDisp(AxisValue-50:AxisValue-1), 50);
%求 FFT 轉換結果的模值
Mag = abs(y)*2/N;
%繪制幅頻相應曲線
plot(f, Mag, 'r');
grid on;
title( 'FFT');
xlabel( '頻率');
ylabel( '幅度');
g_Count = 0;
drawnow
end
end
fclose(s);
delete(s);
% ********************************************************************************************************************
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲人在线播放
|
九一精品
|
国产激情91久久精品导航
|
国产精品二区三区在线观看
|
久热爱
|
a级大片免费观看
|
毛片一区
|
国产一区二区三区在线看
|
性视频一区
|
亚洲精品欧洲
|
日本一区二区不卡
|
精品国产乱码久久久久久闺蜜
|
国产高清精品在线
|
亚洲精品国产一区
|
99久久99
|
99国产精品视频免费观看一公开
|
日本不卡一区二区三区在线观看
|
伊人无码高清
|
免费a在线
|
天天操网
|
视频一区二区在线
|
黄色在线免费观看
|
一区二区在线不卡
|
欧美午夜一区
|
国产精品久久久久一区二区三区
|
一级毛片网
|
在线亚洲电影
|
天堂成人国产精品一区
|
男女午夜免费视频
|
偷拍亚洲色图
|
国产亚洲精品美女久久久久久久久久
|
久久国产成人
|
天天爱爱网
|
日本高清不卡视频
|
国产一区不卡在线观看
|
成人亚洲精品
|
欧美精品v国产精品v日韩精品
|
久久综合一区
|
av 一区二区三区
|
国产伦精品一区二区三区精品视频
|
久久国产一区
|