找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1497|回复: 4

帮忙看一下,USB调用的DLL问题出在那里?

[复制链接]
发表于 2007-8-21 09:23:06 | 显示全部楼层 |阅读模式
下面是周公做好的供上位机调用的DLL函数(单片机通过D12芯片与PC连接):
int __stdcall WriteData(int pipenum,unsigned char *sendbuffer,int len,int waittime);
各参数说明如下:函数功能:向USB 设备写入数据
pipenum: 所要操作的管道号,可以为1,3,5,7,9,11,13
recbuffer:发送数据缓冲区
len:发送数据缓冲区长度,必须为实际所要发送的数据长度,最大长度为1024 个字节
waittime:等待超时时间,为-1 表示一直等待
返回值:写入成功为发送的字节数,否则为-1


在LV中DLL配置如下
long WriteData(long pipenum, unsigned char *sendbuffer, long len, long waittime);

其中pipenum,len,long都是32位(4字节)有符号整型;
sendbuffer为8位无符号整型数组指针
调用的时候有初始化,但是运行后程序自动关闭,有经验的大哥指点一二
发表于 2007-8-21 11:32:00 | 显示全部楼层
参数不对,或者是调用的方式有问题.
回复 顶

使用道具 举报

发表于 2007-8-24 15:14:19 | 显示全部楼层
参数配置一定要一样,包括名称和类型.
还有几个参数修改下,如下

为什么LabVIEW在调用我的LabVIEW DLL的时候会出现崩溃?

主要软件: LabVIEW Development Systems>>Full Development System
主要软件版本: N/A
主要软件修正版本: N/A
次要软件: N/A



问题: 我将LabVIEW的一个VI转换成了DLL,在我创建完这个DLL之后,我尝试从一个新的LabVIEW VI中去掉用它,但是在Call Library Function Node导致LabVIEW崩溃。我该如何修复它?

解答: 在从LabVIEW中调用LabVIEW创建的DLL的时候,有两件事情您需要检查一下:
确保DLL函数调用方法和您在Call Library Function配置对话框中选的是一致。如果您不选择其他的话,LabVIEW默认情况下使用C的调用方法给LabVIEW的DLL调用。在Windows中,您也可以选择标准的调用方法。在其他的操作系统里,只有C的调用方法是允许的,所以不存在这个问题。 一个调用方法不正确的现象是,在函数运行的时候,在程序框图里Call Function Library函数返回的时候会引起LabVIEW崩溃。
如果您正在显示LabVIEW DLL的前面板,有两条严格的要求确保它能够工作。
Call Library Function调用的DLL必须设置成Reentrant。在执行分类(在浏览按钮下面)将Run in UI Thread 设置成 Reentrant。
在调用VI里(LabVIEW开发环境里调用LabVIEW创建的DLL的那个VI)必须不能设置成用户接口执行系统。您可以在File » VI Properties » Execution中检查,并确保执行系统是标准的,仪器i/o,数据采集,其他的1,或者2(如果上层调用这个VI的VI是执行在用户接口系统的话,对于调用者也要这么设置)。
回复 顶

使用道具 举报

发表于 2007-8-24 15:37:21 | 显示全部楼层
回复 顶

使用道具 举报

 楼主| 发表于 2007-8-25 08:34:38 | 显示全部楼层
rongcheng0501@1 所说是正解,谢谢,问题已经解决
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-10-1 02:33 , Processed in 0.038256 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表