关于CH375A读U盘数据的问题

我调试CH375HFT.C程序时,初始化CH375正确,测试U盘连接,U盘准备返回的值都是正确的,可是下段程序时,程序就跳不出来了,

#if DISK_BASE_BUF_LEN if ( DISK_BASE_BUF_LEN < CH375vSectorSize ) { /* 检查磁盘数据缓冲区是否足够大,CH375vSectorSize是U盘的实际扇区大小 */ printf( "Too large sector size\n" ); while ( CH375DiskConnect( ) == ERR_SUCCESS ) mDelay100mS( ); continue; } #endif 然后,我直接把上段程序屏蔽,直接往下走, LED_RUN_ACT( ); /* 开始操作U盘 */ printf( "Open\n" ); mCopyCodeStringToIRAM( mCmdParam.Open.mPathName, "\\C51\\CH375HFT.C" ); i = CH375FileOpen( ); /* 打开文件 */ 这时,i返回的值是0X1F

不知道为什么,请高手指教,谢谢!

因为,我是用仿真器在运行程序,我怀疑是不是RAM不够用,后来写了一个片子,还是不行,我的硬件没有扩展62256,以后写芯片想用STC89C58RD+,应该没问题吧?


至于有没有问题,是不是RAM的问题,你看一下你编译完毕后,DATA,XDATA占用多少就知道了.


data=113.5,xdata=30749 有警告语句用内存超出范围。

我用仿真器调试程序时,也考虑了RAM的问题,我特意选了一个有大RAM的单片机, 如果不想改电路,还有其它办法没有啊?请指教,谢谢 昨天测U盘扇区读写程序时,这个电路完全好用。


估计是你的内部RAM分配有问题,你编译的时候采用LARGE模式编译看下可以不可以?


采用LARGE还是一样的,如果编译后XDATA为30000多那么即使我写片子也不会好使呀,我手头有一个1024RAM的片子,为什么呢,

我的程序是:EXAM1中的CH375HF。C,加入的头文件为 CH375HF6.H,库文件为CH375HF6.LIB


外部RAM的话如果编译器是KEIL的话,应该不会报外部RAM出现问题,你最后操作的时候,你使用例子7里面的程序,这个是以字节方式来对U盘进行操作的,RAM要求很少,你的1024字节的RAM是完全够了


多谢解答:)


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