关于375

刘工好: 我的程序编译后 XDATA = 1053 ;CODE = 11219 我的12C5A60的SRAM = 1280 FLASH = 60K,应该完全没有问题的!!至于CH375DiskReady()无法返回正确值是不是有可能是U盘的问题。想想还有什么遗漏的地方.....

你的这个单片机的SRAM= 1280的话,那么XDATA 应该为1024,内部RAM为256字节,按照你编译之后的变量好像外部RAM变量超出了。建议你先仔细看下单片机的说明书,确认RAM是否是这样分配的。


确实是这样的,XDATA = 1024,内部RAM = 256,现在应该怎么样来修改呢?我不知道为什么会占用这么多的XRAM,本来文件缓冲只用了 512B,是不是可以想想办法?拜托了......谢谢....


你可以降FILE_DATA_BUF_LEN设为0 这样就减小了512个字节的RAM了。


我是把 //#define FILE_DATA_BUF_ADDR 0x0000 //#define FILE_DATA_BUF_LEN 0x0200 都屏蔽起来,这样可以吗?不行,返回值依然是05,还有CH375DiskReady( )始终没有通过,这一个是不是必须的,会不会是这的问题? 只是把 #define FILE_DATA_BUF_LEN 0x0200 的值改为 0X0000,编译通不过。


我用你的工程编译了一下,是可以编译通过的。 Program Size: data=115.5 xdata=541 code=9424 //#define DISK_BASE_BUF_ADDR 0x0000 /* 外部RAM的磁盘数据缓冲区的起始地址,从该单元开始的缓冲区长度为SECTOR_SIZE */ //#define DISK_BASE_BUF_LEN 0x0200 //#define FILE_DATA_BUF_ADDR 0x0000 /* 外部RAM的文件数据缓冲区的起始地址,缓冲区长度不小于一次读写的数据长度 */

//#define FILE_DATA_BUF_LEN 0x0200 /* 外部RAM的文件数据缓冲区,缓冲区长度不小于一次读写的数据长度 */

应该不会有0X05这个错误码的。你的函数哪个地方返回0X05?


知道了,那是因为CH375HF6.H不支持高速单片机..... 请问有没有用1K RAM做扇区级文件读写成功的例子。现在我用字节级文件创建成功了。希望以后顺利。但是我还是想进行扇区级读写,不想扩展了,不知道行不行的通?


可以,你参考CH375EVT.ZIP,里面有个文档,CH357EVT.PDF,里面有说到如何将磁盘缓冲区和文件缓冲区共用。磁盘缓冲区512个字节是必须的。可以将这512个字节作为数据缓冲区来用。


问一下。CH375HFC.H库能用来读取U盘数据吗?


可以的。库函数就是用来读写U盘的


问一下 #define MAX_BYTE_IO 256 怎么会有字节限制。我把它设置为 255时都读取的数值都很稳定。我想一扇区分2次读,就设置为256,就不知道为什么一个字都读不出来了.....


256 不对。是字节数是一个8位变量最大就是255.


这个变量定义的是ubsigned char 型变量,最大值是0XFF也就是255,定义为256的话,那么MAX_BYTE_IO值为0


问一下,我想让MP3连续播放文件。这样就需要连续的打开文件,有没有相关的例子?


我想到办法了。我想问一下,在枚举文件时我将参考程序中的 pCodeStr = "\\*"; 枚举是成功的。 但是改为改为: pCodeStr = "\\*.MP3"; 结果什么输出都没有,也就是说对以后缀为 MP3的文件过滤失败!是什么原因?


pCodeStr = "\\*.MP3"; 不支持这种操作。这样是不可以的。


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