安好了驱动,USB线上电正常,为什么PC机一点反应没有。不可识别的硬件也没有。我做的是msp430+ch375的USB数据采集板,程序无误,已经灌入
设置设备模式,375有没有返回成功状态呢?如果没成功需要做测试命令(参考手册)检测硬件连接和接口程序是否正确
我是先点击CH372DRV,有个setup v1.20的窗口,点install,弹出对话框"驱动预安装成功,插上设备,在弹出的《新的硬件向导》选择自动安装即可",插上我的板子,再没反应了。该怎么做啊
如果模式2设置成功,并且成功的安装驱动,那么在设备管理器中,会看到一个CH372的设备.这个时候即可使用上位机软件和下位机通讯. 如果设置不成功,建议做测试命令,检查硬件连接是否有误,以及读写子函数是否正确.
模式2怎么设置?怎么看
下载CH372ECT.ZIP.里面有TEST.C是设置模式2的.
从哪下的,只找到了CH372EVT.ZIP,对吗?
是CH372EVT.ZIP. 参考CH372EVT\PUB\TEST\MCU 里面的例程.
谢谢你了,去试下,这2天着急坏了。呵呵
程序里面有USB设备语句。 xWriteCH375Cmd( CMD_SET_USB_MODE ); xWriteCH375Data( 2 ); 板子是msp430f1611+ch375的数据采集板,我的操作方法是:接入USB线供电,并用JIAG灌入下位机程序,打开CH372DRV驱动,点INSTALL,然后运行主程序。这样对吗?为什么没有提示找到新硬件,正常情况该是什么呢?哪位达人指点,可以把东西发过去,帮看下,十分感谢
在你设置模式之前你可以先做下测试命令,看下输入数据是不是你输出数据的取反,按照正常的应该是输入数据的取反,否则则说明你的硬件有问题,建议你去调试你的硬件.之后测试命令通过了,设置模式2之后计算机才会发现新硬件
这是因为你的模式没有设置成功,前面已经给您回复了,要做测试命令.一定要确保测试命令通过才可以设置命令.具体可以参考CH372DS1,正常的情况是,提示安装驱动,自动安装好后,在设备管理器里面出现一个名为外部接口的设备
// USB总线接口芯片CH375的数据块测试程序 V1.0 // 运行环境: Windows 98/ME, Windows 2000/XP // support USB chip: CH372/CH375 // 本程序测试数据传输的正确性,对应的单片机端的测试程序为TEST.C // 该程序发送数据到单片机,单片机将数据取反返回计算机。 #include #include #include #include #include #include "CH375DLL.H" // CH375的动态链接库 // 我们在计算机和单片机的应用程序之间约定下传数据的首字节是命令码 #define TEST_DATA 0x21 // 测试数据正确性 //程序入口 void main ( ) { unsigned char mWriteBuf[3]={'a','b','c'}; unsigned char mReadBuf[3]; unsigned long mReadLength,mWriteLength;
printf( "\nCH372/CH375 Bulk Data Test Program V1.1\n" ); printf( "test data correctness \n" );
// 需要使用DLL则需要先加载,没有此句则会自动加载 printf( "*** Load DLL: CH375DLL.DLL \n" ); if ( LoadLibrary( "CH375DLL.DLL" ) == NULL ) return; // 加载DLL失败,可能未安装到系统中
printf( "*** CH375OpenDevice: 0# \n" ); if ( CH375OpenDevice( 0 ) == INVALID_HANDLE_VALUE ) return; /* 使用之前必须打开设备 */
CH375SetTimeout( 0, 5000, 5000 ); // 设置USB数据读写的超时,超过5000mS未完成读写将强制返回,避免一直等待下去 getch(); /* for(i=0;i<64;i++) mBuffer[i]=i; mTotal = 64; if(CH375WriteData( 0, mBuffer, &mTotal )) printf("send !\n"); // if ( mTestCount == 0 ) Sleep( 200 ); // 考虑到之前单片机准备上传的数据可能未被计算机取走,导致首次回传有可能直接读到之前的数据而不是本次数据的取反,所以首次回传先等待单片机准备好取反数据 mLength = 64; if ( CH375ReadData( 0, mReadBuf, &mLength ) ) // 接收成功 printf("recive !\n"); for(i=0;i<64;i++) { if(i%16==0)printf("\n"); printf("%4x",mReadBuf[i]); } */ //--------------------------------------------------------------------------------------------- printf("HERE 1!\n"); mWriteBuf[0]=0x01;mWriteLength=3; if(CH375WriteData( 0, mWriteBuf, &mWriteLength )) // 发送成功 printf("send command 0x%02x!\n",mWriteBuf[0]); getch(); mReadLength = 1; if ( CH375ReadData( 0, mReadBuf, &mReadLength ) ) // 接收成功 printf("recive command 0x%x!\n",mReadBuf[0]); getch(); if(mReadBuf[0]==(mWriteBuf[0]^0xff)) { printf("recive the inverse command right!\n"); } getch(); //--------------------------------------------------------------------------------------------- printf("HERE 2!\n"); mWriteBuf[0]=0x02;mWriteLength=3; if(CH375WriteData( 0, mWriteBuf, &mWriteLength )) // 发送成功 printf("send command 0x%02x!\n",mWriteBuf[0]); getch(); mReadLength = 1; if ( CH375ReadData( 0, mReadBuf, &mReadLength ) ) // 接收成功 printf("recive command 0x%x!\n",mReadBuf[0]); getch(); if(mReadBuf[0]==(mWriteBuf[0]^0xff)) { printf("recive the inverse command right!\n"); } getch(); //--------------------------------------------------------------------------------------------- printf( "\n*** CH375CloseDevice: 0 \n" ); CH375CloseDevice( 0 );
printf( "\nExit.\n" ); getch(); } 是这样吗?该怎么操作?通过IAR下载后运行?取反返回的数据在哪看?我这只是一个简单的板,没有LCD
请问CH375设备功能的手册有没有详细看过,PC连设备都没找到,看这个PC端程序没任何意义,现在需要你调试下位机程序,做测试命令,检查软硬件是否正常,前面已经说了好多遍了,明白不!