久久久久久久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
主站蜘蛛池模板:
中文字幕免费在线
|
99久久久久
|
福利视频一区
|
av二区三区
|
91精品国产日韩91久久久久久
|
国产激情在线观看
|
韩国主播午夜大尺度福利
|
久久这里只有
|
久久最新
|
国产精品亚洲一区二区三区在线观看
|
91在线观看
|
亚洲一区 中文字幕
|
成人免费在线视频
|
亚洲91视频
|
亚洲成人网在线观看
|
精品一区二区三区在线视频
|
国产二区三区
|
日韩欧美在线一区
|
男女一区二区三区
|
欧洲一区二区三区
|
成人免费观看男女羞羞视频
|
欧美成人一区二区
|
欧美精品一区二区三区在线播放
|
国产一区二区在线免费播放
|
日韩 欧美 综合
|
亚洲免费一区二区
|
国产精久久久久久
|
久久国产婷婷国产香蕉
|
视频一区二区三区四区五区
|
欧州一区
|
天堂在线网
|
国产欧美精品一区二区三区
|
午夜精品久久久久久久
|
中文字幕一区二区三区四区五区
|
一区二区三区不卡视频
|
久久99视频精品
|
视频在线一区二区
|
91亚洲国产成人久久精品网站
|
国产精品久久久久久久久久
|
a欧美
|
91麻豆精品国产91久久久更新资源速度超快
|