我遇到了从望远镜获得返回值的问题。我已经能够向它发送数据了,我使用fscanf来获取返回值,这是我的代码到目前为止。
close all; clear all; clc;
priorPorts = instrfind; % finds any existing Serial Ports in MATLAB
delete(priorPorts); % and deletes them
COMnum = input('COM Number:');
telescope = serial(['COM',num2str(COMnum)]);
set(telescope,'BaudRate',9600);
set(telescope,'Terminator','#'); %theres a pound symbol at the end of all commands
fopen(telescope);
fprintf(telescope,'h');
out = fscanf(telescope,'%c',512);
当我运行它时,将返回一个我无法解释的字符串(例如“9ø”)。预期的反应是:
chr(Q) &
chr(R) &
chr(S) &
chr(T) &
chr(U) &
chr(V) &
chr(W) &
chr(X) &
"#”
其中Q,R,S,T,U,V,W,X都是整数,“#”是终止符。 当我输入一个返回char(整数)&的命令时“#”返回空格和“#”终止符。 注意:当返回值只是一串文本时,此程序可以正常工作 我试过的:
以下是我一直在使用的一些资源 http://www.nexstarsite.com/PCControl/ProgrammingNexStar.htm 特别是coms协议文档,它是顶部的第一个链接。 任何和所有的帮助表示赞赏。谢谢!
答案 0 :(得分:0)
使用fscanf然后输入cast为double,如此
out = fscanf(s);
out = double(out);