如题. 用仿真器,可以实现字节方式写U盘,但是换成AT89S52单片机,就运行到CH375FileCreate( ) 时,返回一个0xA1的错误,即"磁盘尚未格式化,或者参数错误,需要由WINDOWS采用默认参数重新格式化".
内部技术人员说可能是扩展ram的原因,但是把它拿掉仿真器也没有结果,放上就好了,所以应该不是它的问题吧.
但现在实在是没有办法...不知各位大侠有和想法,谢谢~~
如题. 用仿真器,可以实现字节方式写U盘,但是换成AT89S52单片机,就运行到CH375FileCreate( ) 时,返回一个0xA1的错误,即"磁盘尚未格式化,或者参数错误,需要由WINDOWS采用默认参数重新格式化".
内部技术人员说可能是扩展ram的原因,但是把它拿掉仿真器也没有结果,放上就好了,所以应该不是它的问题吧.
但现在实在是没有办法...不知各位大侠有和想法,谢谢~~
单片机的晶振是多少,会不会速度太快了.还有你看下你程序链接后用了多少RAM,你的RAM可够.
单片机用了24mhz的晶振,会不会太快了?
ram的话扩展了一个62256,我程序里面就写的U盘数据很少,只作为测试用,应该不会不够吧?
24M可以,但要注意三个读写子函数中的延时满足CH375的要求,命令与命令之间2us,命令与数据之间2us,数据与数据之间1us。 外扩了RAM,那够了.
程序里面已经 xWriteCH375Cmd( CMD_CHECK_EXIST ),CH375LibInit通过, CH375DiskStatus也检测到U盘,CH375DiskReady( )也通过,就停在CH375FileCreate( )上,是不是问题不在读写子函数上? 好着急啊...
这个可能是你单片机的ROM不过,我们的库大概需要10K的ROM,而AT89S52好象就8K,可能会出问题,建议你换一个16K的单片机试下看。
CH375DiskSize()也能返回0,
为什么CH375FileCreate( )或者CH375FileOpen( )都返回0xa1捏...
我现在烧进rom的大概是7K多,没有到8k的. 我现在只要让CH375FileCreate( )这个函数通过,还不往里写数据.
遇到了和你同样的问题,你解决了没有啊?
呵呵,我扩展ram的时候给P0口加了上拉电阻,多此一举,拔掉就好了。 不过现在也不是每次都成功,偶尔成功一下,而且,仿真器仿的是89C52,烧到89C52芯片才有可能行,烧到89S52里还是什么结果也没有。
呵呵,你的呢?
我用的是ATMega64, 现在正调试,每次到CH375FileOpen( )就出错,我看到也有人遇到这样的,说是因为读写延时太大,我的也不大,还是不行!
我的QQ57838534 可以QQ讨论,呵呵!
后来我的375芯片又没反应了,索性重新焊了块扳子,买了个新的U盘(清华紫光128M的),就好了,从来没出过问题,而原来那个U盘还是不行. 恩,看来是U盘有问题啊
返回0xA1的错误的话,一般就是你的RAM出了问题,你看下磁盘缓冲区是怎么定义的,你可以测试下你的RAM是否有问题
我的也是,每次到CH375FileCreate( )或者CH375FileOpen( )就出错,我的是采用的串口方式,可以初始化lib,CH375DiskStatus也检测到U盘,CH375DiskReady( )也通过,不知道怎么回事
返回的错误代码是多少???
好像返回的是37(十进制),是用数码管显示出来的