在大多数情况下,将设备驱动程序代码集成到Simulink中金宝app®块时,您需要围绕硬件供应商提供的API编写一个包装函数。按照以下步骤来开发实现数字读写功能所需的C/ c++代码:
在MATLAB中创建一个新的空文件®编辑器。
将下面的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。
将文件保存为digitalio_raspi.c
到源文件夹中,src
.
创建一个空的头文件并将下面的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_
将文件保存为digitalio_raspi.h
到包括
文件夹中。
这个头文件定义了C文件中实现的函数的C原型,digitalio_raspi.c
.
的digitalio_raspi.c
功能包括一个wiringPi.h
文件,其中定义pinMode
和digitalWrite
功能。金宝appSimulink数据类型用于销
和瓦尔
变量。由于这个原因,rtwtypes.h
文件包含在digitalio_raspi.h
.无论何时引用Simulink数据类型,都必须包含该文件。金宝app因为销
我们用的是0到53之间的数字吗uint8_T
表示此变量的数据类型。的瓦尔
变量是要写入数字输出引脚的值,用表示boolean_T
数据类型。
在下一节中,您将看到选择系统对象模板然后开始填充方法。