[求助]芯片CH374U,当同时用键盘和U盘时出现问题

原来向刘工请教过,放置了一段时间又开始弄了 用的lpc2378,spi方式 目前情况: 1、U盘用hub0口,键盘用hub1或hub2,u盘和键盘正常工作,能够调用库文件进行读写操作。 2、键盘用hub0口,U盘用hub1或hub2,u盘不能读写,创建新文件CH374FileCreate( )返回值为0X11。

观察了一下,初始化键盘和U盘后键盘的小灯及U盘的灯都是正常的,mCmdParam中的参数都是相同的,请教一下,在调用库文件 比如CH374FileCreate( )前需要设置好哪些和库有关的参数呢?两者共同使用时端口参数怎么设置?库里面用了那些端口参数?希望得到各位老师的解答

CH374vEmbHubIndex=s+1; /*CH374vEmbHubIndex的值为HUB端口加1*/ s为端口号,0,1,2代表HUB0-2这三个端口。 你改变一下这个值实验一下。


在初始化开始就已经设置此参数了, for(n=0;n!=3;n++) { CH374vEmbHubIndex =n + 1; i = CH374EmbHubAttach( ); if ( i == 0 ) { DEV_Information[n].Device_Status = DEV_DISCONNECT; if ( DEV_Information[n].Device_Class == DEV_DISK ) CH374DiskStatus = DEV_DISCONNECT; } else if( ( i== BIT_HUB0_ATTACH || i == ( BIT_HUB0_ATTACH & BIT_HUB0_EN ) && DEV_Information[n].Device_Status <=DEV_CONNECT )) { DEV_Information[n].Device_Status =DEV_CONNECT; CH374DelaymS( 10 ); i=EnumerateDevice( n ); DEV_Information[n].Device_Class=i; if(i==DEV_DISK ) { DiskPortNum=n; SaveVariable(n); SelectHubPort( n ); SwitchDisk(n); s=CH374DiskReady(); strcpy( (char *)mCmdParam.Create.mPathName, "/ABCD.TXT" ); s = CH374FileCreate( ); ....... } }


隔了几天又来调了,没什么进展。有些死心了。想问一下如果不用hub,用两个芯片分别控制两个USB口,这样做起来是不是好调试一些,主要还是想接USB键盘和U盘,以及以后可能接打印机或扫描机。请老师推荐一下用哪个芯片比较好些,占得内存少不用库什么的,资料详细一些的。谢谢老师了


CH374U应该是可以的。不过还有缺点,比如你在连续操作U盘的时候,就必须在适当的时间内去管理其他USB设备。建议你这样来做,U盘管理单用一个芯片CH376,,然后其他设备用CH374U,这样就不会用到库了,全部源代码


谢谢,376有没有arm spi格式读写u盘的代码或者51的调试通过的总程序,你们的资料感觉确实多但是又确实比较乱,看了一下论坛帖子,376出的问题也不少,不过各位工程师还是比较耐心地解答。还是想先看看资料。能传到这里吗?已下了CH376EVT.ZIP,CH376DS1.PDF,CH376DS2.PDF


哦,今天可能放假了吧,可怜的我们这里还在上班,希望工程师老师上班后给我传来吧


CH376EVT.ZIP里面的代码就是调试通过的代码。完全可以参考使用。


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