在matlab-simulink / stateflow中调用C函数

时间:2012-08-20 17:29:41

标签: matlab simulink stateflow

我在test.c中创建了一个C函数

#include <stdio.h>


int Test()
{
    FILE * fp = fopen("C:\\workspace\\test.txt", "rw");
    fprintf(fp, "test hello world");
    fclose(fp);
    return 10;
}

我在simulink的stateflow中定义了一个状态。我用了

en: Test();

我在工具中指定了文件 - &gt;打开模拟目标 - &gt;自定义代码 - &gt;生成附加列表和包含自定义C代码(使用绝对路径和文件名) 当我试图运行模型时,我得到了解析器错误: EN:Test();          ^ 名为“Test”的函数不是Stateflow函数。

我该怎么办?

2 个答案:

答案 0 :(得分:4)

由我自己完成。 在“在生成中包含自定义C代码:” - &gt;标题文件选项卡中, 我应该将我的头文件指定为

#include "test.h"

而不是

test.h

c文件应在“包含附加列表” - &gt;源文件中指定为

test.c

答案 1 :(得分:3)

添加对在线示例的引用,用于向Stateflow添加自定义C代码,以帮助遇到类似问题的其他用户: http://www.mathworks.com/support/solutions/en/data/1-1727V/