[分享]单片机读写U盘闪盘超精简C源程序,不用子程序库

thanks!


电子盘模块CH375EDM ,单片机系统可以直接使用CH375读写U 盘,将U盘当作大容量闪存使用。

下面是电子盘模块CH375EDM 的电路图,用于插入在兼容SRAM-6264 引脚的DIP28 插座中。 单片机系统应该提供兼容SRAM-6264引脚的DIP28插座,电子盘模块应该插入该DIP28插座中, 然后在电子盘的模块的P1 端口插入U 盘(USB 闪存盘)或者通过USB 延长线插入U 盘。 以原SRAM-6264 的片选地址作为基址,各端口地址如下: 基址加0 的地址为CH375 的数据端口, 基址加1 的地址为CH375 的命令端口, 基址加2 的地址为CH375 的状态端口,其中位0 为CH375 的INT#引脚状态。 要使用电子盘模块,单片机系统必须给DIP 插座提供以下信号: 低电平有效的CE#片选信号和高电平有效的CE 片选信号,与SRAM-6264 兼容; 低电平有效的RD#/OE#读选通信号,低电平有效的WR#/WE#写选通信号,与SRAM-6264 兼容; 地址线A1 和A0,双向数据总线D7-D0,与SRAM-6264 兼容; 可选的中断信号,从DIP28 插座的第1 脚输出,当跳线J1 连接1-2 时提供低电平中断信号,当 跳线J1 连接2-3 时提供高电平中断信号。 单片机系统可以直接使用CH375读写U 盘,将U盘当作大容量闪存使用。如果需要使用文件系统 以文件格式读写数据,可以使用CH375的U 盘文件级子程序库,只要在程序中设置正确的端口地址, 相关的示例程序都可以直接使用。


可惜都不是实时系统的!!!


哈哈,你几个挺有意思,我也看看


我用这个程序有几个问题,不知谁能帮我一下: 我用51系列仿真器,MCU 12M, CH375 12M U盘为GEIL 512M FAT16 主程序中许多写命令字的地方要加延时才能初始化U盘,要不单步运行也能初始化。 在UINT8 mReadSector( UINT32 iLbaStart, UINT8 iSectorCount, UINT8X *oDataBuffer )这个函数中, 第一次能读到64个字节,第二次只能读到13个字节,第三次循环在第一个c = mWaitInterrupt( ); /* 等待中断并获取状态 */处死等了。 试了很多次,第一二字节都是FA 33 有一次多读了一些字节,里有有段英文,内容是“错误的磁盘”之类的话。 另外,MCU复位后,中断引脚常为低,在主程序中最前面加一句CH375_WR_CMD_PORT(0x05);才可解决此问题。


谢谢!


很经典,下载下来慢慢看


这个程序只能读写FAT16文件系统U盘,现在大多数U盘是FAT32文件系统,如果读写FAT16文件系统的U盘,对上述程序要做哪些修改,由于我对文件系统不太懂,希望指教,谢谢!!


实际FAT16和FAT32在文件系统上面的原理是一样的,只是在一些参数上面不一样而已,例如如果是FAT32的话,那么FAT表的4位代表一个簇号,而FAT16则是2位代表一个簇号,FAT16比FAT32多了根目录,以及2个的DBR不相同


好极了,有没有asm写的,我只读不写。


.h文件也发来看看啊啊


有没FAT32的例子程序?


我们没有提供,如果你的单片机是MCS51、AVR、ARM、430等,建议使用我们的子程序库


下载:CH375(4)LIB.ZIP,里面是文件库,参考程序在MCS51文件夹下面.


真的不错,但还是不知道库中的C程序。呵


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