湘潭做网站买转发链接

结构体是由不同数据类型的数据组成的集合体,声明形式如下:Struct 结构体名
{
数据类型说明符1 成员名1;
数据类型说明符2 成员名2;
.
.
数据类型说明符n 成员名n;
};
仅仅声明结构体类型是不够的,要使用结构体数据,还要声明结构体变量,结构体类型变量的语法形式如下:
结构体名 结构体变量名;
一、结构体类型变量
如何使用Simulink实现如下代码?
typedef struct {
real_T x;
real_T y;
real_T m;
real_T n;
} Signals;
Signals z;
首先使用Bus Creator创建如下图所示的模型:

创建模型后需要在数据字典创建一名为Signals的Simulink Bus对象,以及与代码生成有关的参数和信号变量配置:



数据字典创建完所需的信号变量、参数等变量后,需要对Bus Creator属性进行一定的配置:

对相关变量关联Reslove后,即可生成所要的代码:



除了利用Bus Creator构造结构体变量,其实在数据字典中创建变量时,可通过设置变量的Storage Class类型也可实现结构体变量的创建,具体的小伙伴们可自己摸索下:

二、结构体类型变量的嵌套
如何利用Simulink实现如下结构体类型变量的嵌套?
typedef struct {
real_T x;
real_T y;
real_T m;
real_T n;
} Signal1;
typedef struct {
real_T h;
real_T f;
} Signal2;
typedef struct {
Signal1 S1;
Signal2 S2;
} Signal3;
通过Bus Creator的嵌套可将结构体嵌套实现,首先使用Bus Creator创建如下模型:

同样按照实例一在数据字典创建代码生成所必须的信号变量、参数等,此处主要着重说明三个Simulink Bus变量的设置:



然后在模型中对模型中的信号名与数据字典中的变量Reslove,其中三个Bus Creator的属性设置如下:



按照如上配置完成后将得到如下所示的代码:




三、结束语
Simulink Tutorials公众号文章已经推送三篇了,通过配置我们确实可得到可读性不错的嵌入式C代码,但有了函数接口,如何将其结合具体的嵌入系统实现呢?其实思路已经在楼主一篇公众号文章有体现了:
简聊Simulink功能开发和集成
下篇楼主将在一可运行FreeRTOS实时操作系统的嵌入式单片机上结合实例讲解如何将Simulink搭建的功能模型在嵌入式系统中实现,敬请期待!!!