求助:关于CH376上传数据的上位机出错的问题

小弟想通过CH376从FPGA上传70个数据给PC机上的应用程序,但是在按下接收上传数据的按钮时应用程序就卡死,VC程序的主要代码如下: void CUsb_testDlg::OnButton2() { // TODO: Add your control notification handler code here char oBuffer[100]; unsigned long i=70; CH375OpenDevice(0);

SetDlgItemInt(IDC_EDIT3,CH375QueryBufUpload(0));

CH375ReadData(0,&oBuffer,&i); //读取上传数据 SetDlgItemText(IDC_EDIT1,oBuffer); //显示上传数据 SetDlgItemInt(IDC_EDIT2,i); }

此外,在OnInitDialog()初始化时还加了以下两句代码: CH375SetTimeout(0,5000,5000); CH375SetBufUpload(0,1);

就这样,只要按下按钮时应用程序就卡死!请大家不吝赐教!指导指导!

CH375SetTimeout(0,5000,5000); CH375SetBufUpload(0,1); 这2句要加在CH375OpenDevice之后。 读数据时最好创建线程,在线程中调用CH375ReadData。


试了一下,发现还是不行! 而且还发现上传的70个字节中,是FPGA是先上传64个字节给CH376,然后应用程序按下接收按钮后可以接收到这64个字节,接着FPGA传剩下的6个字节给CH376,但是再按一下应用程序的接收按钮却接收不到剩下的6个字节的数据了!这是为什么呀?

PS: CH375SetBufUpload(0,1);CH376的驱动程序不是会创建线程自动接收USB上传的数据到内部缓存区吗?还需要另外创建线程吗?


PS:请问有没有一些现成的连续上传数据的应用程序源码可以给我参考一下?


补充一下:FPGA上传的70个字节,是先发送一个长度64给CH376,接着发送64个字节给CH376,然后PC把数据取走后CH376把中断信号INIT置低,接着再发送一个长度6给CH376,接着发送6个字节给CH376,然后等待PC把数据取走,却发现PC没有把数据取到,因此,CH376迟迟不把中断信号INIT置低,因而也无法发送UNLOCK_USB命令!

这是为什么呢?


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