i = CH375FileOpen( ); /* 打开文件 */ 错误,返回值是0A是什么意思?资料上没找到。
Error:! 16进制是0A
1.CH375DiskReady( )有没有通过? 2.建议在操作CH375之前先做一下测试命令,检查一下你的硬件有没有问题
/* 检查U盘是否准备好,有些U盘不需要这一步,但是某些U盘必须要执行这一步才能工作 */ for ( i = 0; i < 5; i ++ ) { /* 有的U盘总是返回未准备好,不过可以被忽略 */ mDelay100mS( ); Put0_String( "Ready " ); if ( CH375DiskReady( ) == ERR_SUCCESS ) break; /* 查询磁盘是否准备好 */ }
一插入U盘,串口上来的数据 Ready Ready Ready Ready Ready Open Error:!
你的CH375DiskReady( ) 好象没有通过吧 你用串口把它的返回值打印出来看看
CH375DiskReady( ) 错误代码是十六进制0A
是什么意思呀?
错误代码现在变成82H了
我们定义的错误代码中没有0x0A。你有没有做测试命令,如果没有的话建议先去做测试命令保证你的硬件没有问题,其次再来做CH375Diskready()。 你的U盘供电电压是多少?插上U盘后的U口电压是多少?
0x82 基本上是你的硬件有问题 USB口的电源电压要保证为5V D+,D-信号线有没有反接 VCC,D-,D+,GND 你的ch375是几V供电的? V3引脚是怎么接的?
5V供电V3通过0。01UF电容接地了。
有问题吗?
首先一个就是在你发送DISK-READY函数的时候,你用示波器去看下USB口的UD+和UD-上面是否有信号,正常的应该有100NS左右的脉宽的波形,同时看下波形是否为好,如果波形有毛刺的话,那么你需要去看下你的共地性能是否好,解决办法就是你的USB口外壳地要接地,同时在USB口的地和你的375的地之间,375和单片机之间飞几根地线,这样效果会好很多。这个时候在做DISK-READY的函数,如果还出现问题,就需要你参考11楼的问题了,还有一个需要提醒的就是375的晶振必须为12M,否则也是不可以通信的。
怎么做测试命令?
(1)发送命令:0x06;发送数据:0x55;再回读数据,应为0xaa (2)发送命令:0x06;发送数据:0xaa;再回读数据,应为0x55 关于各个命令的用法,参考手册