ch376读取U盘内容

UINT8 s, l; PUINT8 buf;

xWriteCH376Cmd( CMD01_RD_USB_DATA0 ); s = l = xReadWriteCH376Data(0xFF); /* 长度 */ if ( l ) { do { *buf = xReadWriteCH376Data(0xFF); buf++; } while ( -- l ); } xEndCH376Cmd( ); 在编译时出错,我声明的UINT8和PUINT8如下 #ifndef UINT8 typedef unsigned char UINT8; #endif

#ifndef *PUINT8 typedef unsigned char flash *PUINT8; #endif

PUINT8如果不加上flash,给该类型指针赋值字符串是不通过,加上flash后 *buf = xReadWriteCH376Data(0xFF);这句语句出错,请问怎么解决?

PUINT8这个定义就是定义指针变量。你所说的PUINT8不加FIALSH是什么意思?


#ifndef *PUINT8 typedef unsigned char *PUINT8; #endif 就是像上面那样定义的话 PUINT8 buf; buf="abcde"; 这样就编译不通过


#ifndef *PUINT8 typedef unsigned char *PUINT8; #endif 就是像上面那样定义的话 PUINT8 buf; buf="abcde"; 这样就编译不通过


上面定义的是指针变量,不是缓冲区。你认为指针变量buf="abcde";这样定义可以吗?


补充一下

#ifndef *PUINT8 typedef unsigned char *PUINT8; #endif 应该是 #ifndef PUINT8 typedef unsigned char *PUINT8; #endif


那么从SPI数据寄存器取回数据后该怎么处理,我就是在这一步卡住,像这样实现编译不通过 if ( l ) { do { *buf = xReadWriteCH376Data(0xFF); buf++; } while ( -- l );

该怎么修改


这个报什么错误?这个函数本身没什么问题啊。还有指针变量需要指向一个缓冲区的。也就是所谓的指针变量初始化。


现在这个问题解决了,但是有个问题是初始化磁盘并测试磁盘是否就绪时老是通不过,不知为什么?


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