单片机通过CH375读写U盘文件的问题解答

用Mega128+CH375读U盘的话是不是一定需要外扩RAM呢? 我的设计里只需要全部枚举出U盘内的文件就可以了,这样数据流量应该不会很大吧,mega128 4K的RAM不知道够不够用? 望大虾尽快回复!


(1)我们的库需要600字节左右的RAM,对于M128,不需要外扩,除非系统中还需要大缓冲 (2)下载CH375EVT.ZIP、CH375LIB.ZIP,参考\CH375EVT\PUB\CH375HF.PDF,熟悉一下库


3q


我自己作了个板子,在U盘里生成了几个文件,之后无法删除,U盘也无法格式化 怎么办?


下载WINHEX软件,全部写0后在格式化.你写一个文件,然后写数据,看数据有没有错误.硬件上是不是存在干扰,如果是两块板子用线连接起来的,一定要保证供地良好.


我做一个U盘读写的项目,发现:DISK_INIT命令发出后,CH375一直不产生中断,不知是怎么回事,还有 SET_USB_MODE命令按PDF上说的,没有提到会产生中断,实际是产生了中断,不知道怎么会是这样?


 硬件连接有没有问题,建议做一下测试命令.请参考CH375EVT\PUB\MCS51C\MISCELL 里面的例程进行操作.


这么多文字,楼主辛苦啦…… 感谢楼主,我在这 Ctrl + C 再 Ctrl + V 之……


我用CH375B做U盘读写程序,但用的是串口,按照pdf上说的,一个起始位,9个数据位,一个停止位。但由于一次只能发8个数据位,所以用奇偶校验位来充当第九位(数据或命令),请帮忙看看这样行不.

void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定义的被CH375程序库调用的子程序,向CH375写命令 */ { uart375Config(COMMAND); //配置为发送命令 奇偶校验位强制为1 mDelay1_2uS( ); mDelay1_2uS( ); uartPutc(UART1_BASE,mCmd); //发送命令 mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延时2uS */ }

void xWriteCH375Data( UINT8 mData ) /* 外部定义的被CH375程序库调用的子程序,向CH375写数据 */ { uart375Config(DATA); //奇偶校验位强制为0 mDelay1_2uS( ); mDelay1_2uS( ); uartPutc(UART1_BASE,mData); //发送数据 mDelay1_2uS( ); mDelay1_2uS( ); /* 至少延时1.2uS */ }

UINT8 xReadCH375Data( void ) /* 外部定义的被CH375程序库调用的子程序,从CH375读数据 */ { unsigned char i; mDelay1_2uS( ); /* 至少延时1.2uS */ mDelay1_2uS( ); /* 至少延时1.2uS */ i=uartGetc(UART1_BASE); //读取数据 mDelay1_2uS( ); /* 至少延时1.2uS */ mDelay1_2uS( ); /* 至少延时1.2uS */ return( i ); }

但这样连初始化都过不了啊,CH375LibInit( ); 返回0x81,之后如果在读数据的话还能读出个0x05,很是奇怪,怎还多出一个了? 对了,CH375B能用U盘读写模块吗?那里面讲到用发送数据时要先发两个同步数据,而不是1+9+1结构,我很是疑惑,请您帮我解答一下。


(1)CH375返回数据的第9位总是0,对于单片机来说,可能会出现奇偶错误,出错时不知道这款单片机的串口数据是否还有效 (2)按照手册做测试命令 (3)CH375与模块是两回事,通讯协议也不同


另外: CH375LibInit( ); 返回0x81,一般是硬件错误或读写函数时序有问题.确保连线正确,TX,RX和MCU的TX,RX交叉连接. 测试25,26脚分别为0,1则表示正常复位. 以上均正常,则仔细检查波特率.是否精确.


我用的是串口电路,5V,芯片引脚电压只有1,8v,这正常吗?


很不正常,哪些引脚为1.8V?正常的情况下高电平为5V,低电平为0


不错


1.请问我存入U盘中的数据是以什么格式存在的?是文件吗?是什么形式的文件?后缀是什么呢?如果把这些数据传到电脑里该用什么工具打开呢?谢谢!

2.怎么通过单片机写个文本文件到U盘里??


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