CH341使用matlab控制时无法loadlibrary

目前CH341的串口使用matlab自带的串口程序可以正常通信,想使用I2C模式,目前模式配置正确,PC也正常识别。

但是加载驱动库的时候一直在报错,自测加载matlab自带的其他动态库是可以正常操作的。

目前使用C编译器:

MEX 配置为使用 'MinGW64 Compiler (C)' 以进行 C 语言编译。

命令如下:

loadlibrary('CH341DLL')

报错信息如下:

加载随后的库中间输出时出错。

实际错误位于此输出末尾。

*********


Type 'LONG' was not found.  Defaulting to type error.


Found on line 6 of input from line 40 of file D:\\learn\\DCDC\\MLX90640\\CH341DLL.H


Type 'HANDLE' was not found.  Defaulting to type error.


Found on line 54 of input from line 236 of file D:\\learn\\DCDC\\MLX90640\\CH341DLL.H


Type 'ULONG' was not found.  Defaulting to type error.


Found on line 54 of input from line 236 of file D:\\learn\\DCDC\\MLX90640\\CH341DLL.H


Type 'VOID' was not found.  Defaulting to type error.


您好,我司提供DLL库文件使用标准Windows API开发,正常不受编译环境和语言调用限制,正常如:Python、Matlab、VB、Python等均可调用,如上提示应为部分变量类型在Matlab中无法直接对应导致找不到原型,可以尝试手动添加未定义变量类型的定义。


基本确认是这个问题,我看了一下,感觉CH341DLL.h里面很多ULONG,UCHAR,VOID都是大写的,跟标准C应该是有区别,这个应该增加一个怎样的文件来修改呢?能否提供样例程序?


您好,CH341DLL.h里面很多ULONG,UCHAR,VOID的类型为Windows标准头文件中定义的变量类型,您可以使用MATLAB匹配的类型转换。Windows系统上:

ULONG: 无符号LONG

UCHAR:无符号CHAR

HANDLE:对象的句柄,最基本的句柄类型

VOID:无类型,相当于标准C语言中的void



只有登录才能回复,可以选择微信账号登录