遇到的奇怪现象,求解

串口U盘读写模块,可以正常初始化,执行到查询U盘是否准备就绪这一步时,有时能通过,有时模块指示灯灭,无数据返回。

SendInit[4]={0x57,0xab,0x0b,0x00}; SendTestDisk[4]={0x57,0xab,0x71,0x00}; 以下是部分程序流程。 Uart_Send_Bytes(SendInit,4); //初始化 while(1) { status = mRecvByte( ); if(status == 0x00) break; } display_delay(1); Uart_Send_Bytes(SendTestDisk,4); //查询U盘是否准备就绪 while(1) { status = mRecvByte( ); if(status == 0x00) { TestDisk=0; break; }else{ TestDisk=1; break; } } 接下来是文件操作,以前用扇区方式写入,今年设备升级时,发现不能用了,不知道什么原因,改成按字节写入,可以正常使用。 还有,我手头有两个U盘读写模块,有一块,程序可以正常工作,反复断电重启,都可正常工作。另一块,出现了上面的这个问题。两个模块都是新的,不正常这个模块,有时候单步执行,也能正常读写。U盘用的同一个,所有硬件也都是同一套。

  请高手解答,先谢了。

57600波特率,刚才忘说了。


首先,拿模块进行自动演示功能的测试,看下模块插入U盘之后是否可以创建一个“自动演示”的文件 其次,发送复位命令之后需要延时200MS以上的时间在发送检测U盘连接的命令,之后这个命令返回U盘插入之后才能进行U盘是否准备就绪的命令。 最后。需要看下按照扇区写的话,返回什么样的错误。


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