主要内容

编写硬件专用的C/ c++代码

在大多数情况下,将设备驱动程序代码集成到Simulink中金宝app®块时,您需要围绕硬件供应商提供的API编写一个包装函数。按照以下步骤来开发实现数字读写功能所需的C/ c++代码:

  1. 在MATLAB中创建一个新的空文件®编辑器。

  2. 将下面的C代码复制到文件中。

    # include< wiringPi.h ># include“digitalio_raspi.h”无效digitalIOSetup(uint8_T引脚,boolean_T模式){//一次性初始化wiringPi如果(初始化){wiringPiSetupGpio ();初始化= 1;}// mode = 0:输入// mode = 1:输出如果(mode) {pinMode(pin, OUTPUT);}其他的{pinMode(销、输入);} }//将逻辑值写入pin无效writeDigitalPin(uint8_T pin, boolean_T val){数字写(pin, val);}//从pin读取逻辑值boolean_TreadDigitalPin (uint8_T销){返回((boolean_T) digitalRead (pin));}

    这段代码封装了树莓Pi™C API,以写入树莓Pi硬件板上的数字I/O引脚。

    请注意

    虽然这里显示的C代码是特定于Raspberry Pi硬件的,但同样的原则也可以扩展到任何特定于硬件的C/ c++ API。

  3. 将文件保存为digitalio_raspi.c到源文件夹中,src

  4. 创建一个空的头文件并将下面的C代码复制到该文件中。

    #如果未定义_DIGITALIO_RASPI_H_#定义_DIGITALIO_RASPI_H_# include“rtwtypes.h”无效digitalIOSetup(uint8_T引脚,boolean_T模式);无效writeDigitalPin(uint8_T pin, boolean_T val);boolean_T readDigitalPin (uint8_T销);# endif/ / _DIGITALIO_RASPI_H_
  5. 将文件保存为digitalio_raspi.h包括文件夹中。

    这个头文件定义了C文件中实现的函数的C原型,digitalio_raspi.c

digitalio_raspi.c功能包括一个wiringPi.h文件,其中定义pinModedigitalWrite功能。金宝appSimulink数据类型用于瓦尔变量。由于这个原因,rtwtypes.h文件包含在digitalio_raspi.h.无论何时引用Simulink数据类型,都必须包含该文件。金宝app因为我们用的是0到53之间的数字吗uint8_T表示此变量的数据类型。的瓦尔变量是要写入数字输出引脚的值,用表示boolean_T数据类型。

在下一节中,您将看到选择系统对象模板然后开始填充方法。

另请参阅

||