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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3651|回復: 0
打印 上一主題 下一主題
收起左側

STM32F103ZET6進行AD采集并通過串口將數據傳至MATLAB動態接收并進行處理

[復制鏈接]
跳轉到指定樓層
樓主
ID:693785 發表于 2020-2-20 11:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
串口接收程序:function Serial()   %創建函數
delete(instrfindall);   %先關閉串口,否則可能導致出錯

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

global t;                        %全局變量,這里根據需要繪制圖形的個人需要而設
global m;
global i;

t = [0];      %時間軸
m = [0];      %數據軸
i = 0;        %用于計數

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

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

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

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

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


x.BytesAvailableFcn = @Callback  %定義中斷響應函數對象,類似于中斷函數名

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

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

fclose(x);

end


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

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

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

%       out=fread(obj,5,'uint32');
%       data = str2num(out)
     %%----------------------以下根據需要自行編寫-------------------------------
    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


對數據進行FFT處理:
% clear all
% close all
% clc
%% Parameter Interface
SampleFre = 1000; %采樣頻率
SignalData=load('a.mat','-ascii');
% SignalLen = 20000;  %數據長度
SignalLen=length(SignalData);
%% Main
%--------------------------------------------------------------------------------------
t = (0:SignalLen-1)/SampleFre; %時間
% 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('信號添加隨機噪聲')
xlabel('t(毫秒)')
%--------------------------------------------------------------------------------------
FFTData = fft(SignalAddNoiseData);
FFTAmplitude0 = abs(FFTData)/SignalLen;  %頻譜關于SignalLen/2對稱
FFTAmplitude1 = FFTAmplitude0(1:SignalLen/2);
FFTAmplitude0(2:end) = 2*FFTAmplitude0(2:end); %復數域的幅值需要進行變換才能與時域的幅值對應
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, 下載次數: 46, 下載積分: 黑幣 -5

內含三個matlab子程序

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人一区二区电影 | 黄一级| 国产成人精品一区二区三区网站观看 | 国产精品一区二区三区在线 | 亚洲综合大片69999 | 国产一级视频在线观看 | 色婷婷激情 | 亚洲国产成人精品女人久久久 | 日韩一区二区在线视频 | 国产精品成人一区二区三区 | 国产精品视频一区二区三区不卡 | 成人在线播放网址 | 精品免费国产一区二区三区四区介绍 | 久久91av| 欧美日韩视频在线 | 欧美一级久久 | 成人精品在线观看 | 午夜在线视频 | 91精品国产一区二区三区 | 啪啪免费网站 | 欧洲性生活视频 | 亚洲第一成人影院 | 精品99在线 | 国产午夜精品一区二区 | 中日字幕大片在线播放 | 日韩欧美在线播放 | 中文字幕高清免费日韩视频在线 | 午夜在线视频 | 狠狠色综合久久婷婷 | jav成人av免费播放 | 亚洲精品福利在线 | 国产精品一区二区av | 99亚洲 | 欧美不卡一区二区三区 | 国产精品久久久久久久岛一牛影视 | 国产精品视频在线播放 | 日韩中文字幕在线视频 | 国产一级视频免费播放 | 日韩在线观看中文字幕 | 色香蕉在线 | 免费高潮视频95在线观看网站 |