我从link中获得了一个脚本,它可以在MATLAB中正确运行。但是,当我创建Simulink模型时,它可以正常运行,但是我可以从m文件中获取数据。
MATLAB脚本:
function data = Loadcell()
eml.extrinsic('arduino','addon','read_HX711')
a = arduino('COM5','Mega2560','libraries','ExampleAddon/HX711');
while 1
LoadCell = addon(a, 'ExampleAddon/HX711',{'D2','D3'});
data = read_HX711(LoadCell)
end
end
Simulink功能
function data = Loadcell()
coder.extrinsic('Loadcell');
Loadcell = zeros('double');
data = zeros('double');
data = Loadcell
end
我使用Arduino在外部模式下运行Simulink,但没有从该代码中获取数据。如何使用那个MATLAB脚本在Simulink块模型中使用它并获取数据?
答案 0 :(得分:1)
最有可能是几个问题
在Simulink中将嵌入式MATLAB函数命名为与MATLAB函数相同。 (您希望Simulink知道应该调用哪个函数?MATLAB函数,还是重新输入Embedded MATLAB函数?)
将Loadcell
定义为extrinsic
函数,然后将其重新定义为双0.0
,然后尝试将其作为函数执行。
我怀疑你想要类似的东西,
function data = Loadcell_Wrapper()
coder.extrinsic('Loadcell');
data = zeros(1,1,'double');
data = Loadcell()
end
(也是,这不是您的问题的一部分,但是MATLAB代码中没有无限循环吗?)