大家好!我用的是STC90C58AD,通过CH375读U盘时,串口显示U盘为空,不知是何原因,请大家指教,多谢多谢!!
串口显示为空是什么意思呢?是用的库来操作的吗?
其实用的是从网上下的一个小写字母转大写字母的例子程序,就是执行到下面的程序时,我让计算机通过串口监控演示过程,就显示"Too large sector size",程序就死到这了。后来我把这段跳过,直接查了U盘容量,串口又显示为”0MB“。不知道是为什么?苦恼啊苦恼。。。。
#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
那说明你的U盘是一个大扇区的U盘,需要磁盘缓冲区为你U盘一个扇区的大小,默认我们的磁盘缓冲区为512字节
多谢!我用的是4GU盘。用实验室买的板子做实验室,U盘可以进行正常读写的。那我该怎么改呢?
这个需要你检查一下CH375DiskReady是不是正常返回成功的。如果没返回成功,则往上查,看返回的错误代码是多少。 参考代码里是循环几次跳转出来的,但是一般来说要返回成功才可以。 STC90C58AD这个MCU的RAM 多大?编译后,实际占用的RAM是否超过了单片机实际的RAM?