大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
本帖最后由 god_blessme 于 2017-9-19 13:45 编辑
小弟最近在搞一个程序,是要读取安捷伦示波器每一屏数据并储存,网上貌似对于tek示波器连接的比较多,安捷伦的超级少,所以大部分是自己看着改的命令,现在碰到的问题很奇葩,运行程序后一个figure显示的数据是正确的,一个figure显示的是错误的。然而我在循环里把waveform_YIncrement变量的注释去掉的话,figure的数据又正常了。想了好长时间不知道问题出在哪里,求对这方面熟悉的大师解答一下。下边是代码
clear;h=waitbar(0,’Please wait…’);
loop_number = 10;
%——————- b—-OSC——————————
recordLen=100000;
g = visa(‘AGILENT’,’TCPIP0::192.168.1.220::5025::SOCKET’);
set(g,’InputBufferSize’,recordLen*3);
fopen(g);
fprintf(g,’:WAVeform:SOURce CHANnel1′);
fprintf(g,’:WAVEFORM:FORMAT WORD’);
fprintf(g,’:WAVEFORM:BYTEORDER LSBFirst’);
fprintf(g,’:WAVeform:STReaming 1′);
preambleBlock = query(g,’:WAVEFORM:PREAMBLE?’);
preambleBlock = regexp(preambleBlock,’,’,’split’);
horizLen = str2double(preambleBlock{3});
waveform_YIncrement = str2double(preambleBlock{8});
waveform_YOrigin = str2double(preambleBlock{9});
waveform_Yreference = str2double(preambleBlock{10});
%——————————————————————–%
for cyclenum=1:10
recordLen2Transfer = min(recordLen,horizLen);
% waveform_raw = zeros(recordLen2Transfer,1);
fprintf(g,’:WAVeform:DATA?’);
% waveform_Raw = binblockread(g,’int 16′); fread(g,1);
[waveform_raw,count] = fread(g,recordLen2Transfer,’int16′);
% waveform_YIncrement = query(g,’:WAVeform:YINCrement?’); % V
% waveform_YIncrement = str2double(waveform_YIncrement);
waveform = (waveform_raw-waveform_Yreference) * waveform_YIncrement + waveform_YOrigin;
Data{cyclenum}= waveform;
waitbar(cyclenum/loop_number);
A=Data{cyclenum};
figure();
plot(A);
%subplot(2,5,cyclenum);
end
%——————————————————————–%
fclose(g);
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182674.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...