正在用51汇编语言开发CH375读写U盘的程序,采用串口通信,现遇到几个问题,请各位专家分析指教!谢谢! 问题(1):向CH375发送命令RESET-ALL(05H),不能复位CH375,必须重新给板子上电才可复位CH375. 问题(2):通过DISK-READ(54H)命令可正确读取U盘0扇区的数据,其它扇区也可读取,但读出来的数据错误,和用其它磁盘扇区数据分析软件读出的数据不同. [Emot]8[/Emot]
供参考 1 向375发复位命令后,需要延时40毫秒才能完成.另外不知你如何判断不能复位? 2 如果能够读0扇区而不能正确读其他扇区,你可以检查读扇区命令后面输入参数的顺序是否正确?
首先非常感谢xujunchen 老师的回复!!! 1.目前正在用PC机通过串口与板子上的CH375进行通信,用串口调试程序查看CH375工作是否正常以及其各种命令执行情况.因向CH375发送的命令和数据是手动发送方式,所以向375发复位命令后,所需要延时40毫秒可满足.有时发送数据或命令错误导致CH375不能正常响应,所以就想再向CH375发送复位命令,以便可重新操作,但是这样不行,必须给板子重新上电后才可重新通信工作,因此判断CH375接收复位命令后并没有复位.这样理解对吗? 2.读扇区命令DISK-READ后输入参数的顺序是这样的:例如要读取U盘其实地址为00000600H开始的一个扇区的数据,则输入参数的顺序是:0006000001H.这样读出的总是全0或错误数据.不知是什么原因?恳请xujunchen 老师和其他同行帮助分析解决,不胜感激!
在扇区读写之前,先发DISK_READY和DISK_SIZE,并且在正确获取容量后在进行扇区读写
在扇区读写之前,先发DISK_READY和DISK_SIZE,并且在正确获取容量后进行扇区读写,但除了0扇区可正常读外,其它扇区还是不能正确读写,错误出在哪呢?真急人那!