用虚拟仪器软件做了一个上位机软件,思路是由上位机先发送任意一个数据,下位单片机接到后即把采集到的温度数据发送给上位机,温度数据仅有2个字节,但是上位机软件编写好后昨天还能用,今天早上再用就收不到下位单片机发送的数据了,再调试以后就开始死机,程序无法运行,用DEBUG372.EXE试过,接收发送都很正常,应该是我编的上位机软件的问题,所以想请教一下,上位机软件编写时调用动态链接库函数的顺序应该是什么样的? 我的步骤如下: 1,复位USB 设备:CH375ResetDevice, 2,打开设备:CH375OpenDevice 3,获取USB 配置描述符:CH375GetConfigDescr 4,调用CH375WriteRead,写入任意数据,读出下位机数据 5,关闭设备:CH375CloseDevice
这样的顺序是否正确,还有什么需要注意的地方吗?
1,打开设备:CH375OpenDevice 2,调用CH375WriteRead,写入任意数据,读出下位机数据 3,关闭设备:CH375CloseDevice 这样就可以了
昨天按你说的改过之后就可以用了,但是今天不知道怎么搞的,开机之后又出现了收不到下位机数据的问题,用DEBUG372.EXE试过,接收发送都很正常,打开设备、调用、关闭设备有哪些参数需要设定吗?感觉这样编写的上位机软件不是很稳定,
我在上位机软件中调用CH375WriteRead中,输入了数据2,长度1,在下位机编程中返回的是两字节的数据,我在上位机软件中加了显示控件显示返回的数据长度,数据长度显示是2,符合预先的设定,但就是没有返回数据,这是为什么呢?昨天也是这种情况,但按zyw 说的改了之后就可以了,今天早上再试又不行了,很奇怪,而且用DEBUG372.EXE试过,接收发送都很正常 zyw在吗?
你用CH375WriteData和CH375ReadData两个函数代替CH375WriteRead试试,或者把你的代码贴出来看看
今天开机后运行程序,又可以了,真是搞不清楚是怎么回事,时好时坏 咱们论坛从哪能上传图片啊?
你先确定是上位机问题还是下位机,可以用TEST程序测试一下,看是不是硬件造成的!
在论坛里给你发了一个邮件 先谢谢你的帮助
你把你的VI文件发过来,我今天才装了一个LIBVIEW! CH375OpenDevice的参数和返回类型都是unsigned long类型 CH375WriteData返回类型都是unsigned long类型,第2个参数,输入时指向一个(UCHAR型)数组变量,第3个变量输入输出都要设置成unsigned long类型指针 CH375ReadData返回类型都是unsigned long类型,第3个参数,输入时设置成unsigned long类型指针,并且指向的值要设置成要读取的长度,如设置成64;第3个变量输出时也要设置成unsigned long类型指针,表示实际读到的数据量
程序发给你了! 谢谢
CH375OpenDevice、CH375CloseDevice的参数和返回类型都定义成了无符号32位整数暂时又可以了
你那CH375ReadData,输入时第3个参数没设置,要设置成unsigned long类型指针,并且指向的值要设置成要读取的长度,如设置成64;第3个变量输出时也要设置成unsigned long类型指针,表示实际读到的数据量。 CH375WriteData是第2,第3个参数输入时都要设置,输出时第3个参数要设置成置成unsigned long类型指针,表示实际写下去的数据量。
在LV的动态链接库控件中没有直接提供unsigned long类型的定义,我将unsigned long类型的都定义为无符号64位整型的数据了,今天两种方式 的都可以运行了,希望以后也都正常!谢谢你的帮助哈!
unsigned long类型是指无符号32位整型。