[求助]再求助一次

要完成CH375并口方式读写U盘,以调用子程序库的方法。FAT32的文件系统。

请问可以参考哪个程序,用HF6.LIB库是吧?

在这里看你们说的都好简单,我感觉自己把好多问题想复杂了[Emot]1[/Emot]

是很简单啊!如果你用的事总线方式,可以用库6,如果用的非总线方式,则用库5


嗯,我再调试看看。 之前看那个人写的180行的C代码,不用子程序库,其实他的函数我还看得懂,主函数的过程也明白。 我看那几个EXAM的时候,主程序中有些东西看的不是很懂 现在先拿这几个EXAM先用了,把参数改了,有问题再请教你吧。


EXAM中的函数直接贴上用,把地址修改一下即可


请教哈,我需要对两个U盘操作嘛,然后U盘A的命令和数据地址分别是9001,9000;U盘B的命令和数据地址分别是A001,A000。于是我定义了地址CMD_ADDR0,DAT_ADDR0和CMD_ADDR1,DAT_ADDR1。然后不同的时候把这两组地址分别赋值给CMD_ADDR,DAT_ADDR。而头文件里面定义的是 UINT8XV CH375_CMD_PORT _at_ CH375_CMD_PORT_ADDR; UINT8XV CH375_DAT_PORT _at_ CH375_DAT_PORT_ADDR; 那么这时候我在程序中如果不定义CH375_CMD_PORT_ADDR和CH375_DAT_PORT_ADDR,就提示我没定义,如果定义了 如:UINT16 CH375_CMD_PORT_ADDR;也会报错,说missing‘;’before‘CH375_CMD_PORT_ADDR’。 到底是什么问题呢? 还有我把你说的对拷程序改了地址,然后下载后没有出现预期的效果,当我把U盘拔出的时候,那个连接ACT脚的LED还亮着,是不是对拷程序哪里还要改下?


CH375_CMD_PORT_ADDR应该是一个宏。应该如下定义 #defined CH375_CMD_PORT_ADDR 0X9001 两个U盘对拷? 那就不可以用库6了。需要用库5.


我把库改成了5,然后还改了程序中中断的IO口,因为我都用单片机的P3^2脚,所以都改用这个脚了 然后程序跑到第一个Ready?处就停了,程序中这一句mCopy_Data_To_Data(copy_buf,DISK_BASE_BUF,0x200); 原程序是注释掉的,我给恢复也还是那样,跑到Ready?处停,求解啊 Change_Bit=0x01; for (i=0;i<5;i++) { /* 有的U盘总是返回未准备好,不过可以被忽略 */ mDelay100mS( ); printf( "Ready ?\n" ); if (CH375DiskReady()==ERR_SUCCESS) { mCmdParam.SaveVariable.mSaveVariable=1; //为0时恢复变量,为1时保存变量 mCmdParam.SaveVariable.mBuffer=copy_mCmdParam; //指向要保存的缓冲区 mCopy_Data_To_Data(copy_buf,DISK_BASE_BUF,0x200); CH375SaveVariable( ); break; /* 查询磁盘是否准备好 */ } } Change_Bit=0x02; for (i=0;i<5;i++) { /* 有的U盘总是返回未准备好,不过可以被忽略 */ mDelay100mS( ); printf( "Ready1 ?\n" );


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