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

標(biāo)題: STM32F103ZET6進(jìn)行AD采集并通過串口將數(shù)據(jù)傳至MATLAB動態(tài)接收并進(jìn)行處理 [打印本頁]

作者: HLHLHLHLHLHL    時(shí)間: 2020-2-20 11:07
標(biāo)題: STM32F103ZET6進(jìn)行AD采集并通過串口將數(shù)據(jù)傳至MATLAB動態(tài)接收并進(jìn)行處理
串口接收程序:function Serial()   %創(chuàng)建函數(shù)
delete(instrfindall);   %先關(guān)閉串口,否則可能導(dǎo)致出錯(cuò)

global x            %全局變量,供串口中斷函數(shù)使用

global t;                        %全局變量,這里根據(jù)需要繪制圖形的個(gè)人需要而設(shè)
global m;
global i;

t = [0];      %時(shí)間軸
m = [0];      %數(shù)據(jù)軸
i = 0;        %用于計(jì)數(shù)

p = plot(t,m);
axis([i-50 i+50 -1 10]);
grid on;

%%----------------------------配置部分----------------------------

%創(chuàng)建串口對象,直接在命令框輸入serial('com1')可查看串口參數(shù)
x = serial('com4');
%設(shè)置或修改串口通信參數(shù)
set(x,'BaudRate',115200);

%設(shè)置中斷觸發(fā)方式
set(x,'BytesAvailableFcnMode','Terminator') %ASCII觸發(fā),字符觸發(fā)
set(x,'Terminator','CR/LF')         %接收到\r\n后觸發(fā)中斷

% set(x,'BytesAvailableFcnMode','byte')     %數(shù)據(jù)觸發(fā),根據(jù)發(fā)送來的數(shù)據(jù)長度來觸發(fā)中斷
% set(x,'BytesAvailableFcnCount',1)


x.BytesAvailableFcn = @Callback  %定義中斷響應(yīng)函數(shù)對象,類似于中斷函數(shù)名

fopen(x);                %打開串口,類似于開關(guān)

fwrite(x,255);           %發(fā)送握手信號0xff,stm32接收到后開始回傳數(shù)據(jù)
pause                 %需要暫停,來接收回傳數(shù)據(jù)

fclose(x);

end


串口中斷服務(wù)子程序:
function Callback(obj,event)   %創(chuàng)建中斷服務(wù)函數(shù),繪制圖像

global t; %時(shí)間
global m; %縱坐標(biāo)
global i; %時(shí)間變化值
%
if i<3000
    out = fscanf(obj);
    data = str2num(out)        %將接收到的字符轉(zhuǎn)換為數(shù)值
    save('a.mat','data','-ascii','-append');

%     x=load('a.mat','-ascii');

%       out=fread(obj,5,'uint32');
%       data = str2num(out)
     %%----------------------以下根據(jù)需要自行編寫-------------------------------
    t = [t i];                                                       
    m = [m data];
    plot(t,m)
    xlabel('t');
    ylabel('data');
    axis([i-50 i+50 0 3.3]);
    grid on;

    i=i+1;
end

end


對數(shù)據(jù)進(jìn)行FFT處理:
% clear all
% close all
% clc
%% Parameter Interface
SampleFre = 1000; %采樣頻率
SignalData=load('a.mat','-ascii');
% SignalLen = 20000;  %數(shù)據(jù)長度
SignalLen=length(SignalData);
%% Main
%--------------------------------------------------------------------------------------
t = (0:SignalLen-1)/SampleFre; %時(shí)間
% SignalData = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); %采樣頻率>2倍信號最大頻率
NoiseData = 2*randn(size(t));
SignalAddNoiseData = SignalData + NoiseData;
plot(1000*t(1:50),SignalAddNoiseData(1:50))
title('信號添加隨機(jī)噪聲')
xlabel('t(毫秒)')
%--------------------------------------------------------------------------------------
FFTData = fft(SignalAddNoiseData);
FFTAmplitude0 = abs(FFTData)/SignalLen;  %頻譜關(guān)于SignalLen/2對稱
FFTAmplitude1 = FFTAmplitude0(1:SignalLen/2);
FFTAmplitude0(2:end) = 2*FFTAmplitude0(2:end); %復(fù)數(shù)域的幅值需要進(jìn)行變換才能與時(shí)域的幅值對應(yīng)
FFTAmplitude1(2:end) = 2*FFTAmplitude1(2:end);
Frequence0 = SampleFre*(0:(SignalLen-1))/SignalLen;
Frequence1 = SampleFre*((0:(SignalLen/2)-1))/SignalLen;
subplot(2,1,1)
plot(Frequence0,FFTAmplitude0)
title('雙邊頻譜')
xlabel('f(Hz)')
ylabel('FFTAmplitude')
subplot(2,1,2)
plot(Frequence1,FFTAmplitude1)
title('單邊頻譜')
xlabel('f(Hz)')
ylabel('FFTAmplitude')


mat.zip

11.55 KB, 下載次數(shù): 46, 下載積分: 黑幣 -5

內(nèi)含三個(gè)matlab子程序






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91麻豆精品国产91久久久久久久久 | 成年人视频在线免费观看 | 亚洲一区久久久 | 亚洲h色| 天天操天天拍 | 国产农村妇女毛片精品久久麻豆 | 欧美亚洲综合久久 | 日韩欧美国产一区二区 | 男女视频在线观看 | 伊色综合久久之综合久久 | 久久www免费视频 | 51ⅴ精品国产91久久久久久 | 色综合99| 99精彩视频 | 国产精品精品视频一区二区三区 | 国产精品无码久久久久 | 成人永久免费视频 | 成人国产精品免费观看 | 亚洲精品一区在线 | 国产精品午夜电影 | 日韩一级不卡 | 一级片免费视频 | 亚洲国产网 | 日本高清视频在线播放 | 色黄爽 | 福利社午夜影院 | 91香蕉| 成人黄色av网址 | 国产精品视频久久久 | 国产精品黄色 | 国产精品视频二区三区 | 日韩中文一区 | 国产欧美精品区一区二区三区 | 久久久久无码国产精品一区 | 亚洲精品一区二区网址 | 国产视频久 | 国产精品一区二区在线 | 欧美福利| 久久免费大片 | 中文字幕 在线观看 | 九九热在线视频 |