logo

单片机通过CH375读写U盘文件的问题解答
大家好!我已经下载了CH375LIB.ZIP压缩包,然后把里面带的HEX文件直接烧到89c52里面,参考说明搭了一个板子,可是每次加电,375的指示灯状态都不定,并且插上U盘没有任何反应,我换了好几个HEX文件都不行,请问这可能是什么问题?谢谢1

我发邮件,据说里面的HEX文件是串口方式。必须使用那个C文件(修改H文件的路径并包含LIB文件)加H头文件和LIB库编译。

不过我现在到了显示U盘容量错误!2216MB。1G的KINSTON这么显示。128M也这么显示。然后停止在OPEN那里了!(先插U盘,再上点)

还有就是,先上电,再插U盘,显示错误号码:0x82。WCH的人说是供电不好。

再就是想用11.0592的晶振给单片机(ISP下只支持到16M),mInitSTDIO函数怎么改写???

/* 为printf和getkey输入输出初始化串口 */
void mInitSTDIO( )

#define CH375_CMD_PORT_ADDR 0xBDF1 /* CH375命令端口的I/O地址 */
#define CH375_DAT_PORT_ADDR 0xBCF0 /* CH375数据端口的I/O地址 */

这两句话什么意思啊?我不太明白啊,这个地址是什么地址啊,是内存里的地址还是什么啊?能给我解释一下吗?
这人很懒,什么都没留下
这是51的总线地址,A0~A15
这人很懒,什么都没留下
请求高手传授,CH375并口方式下读写U盘的汇编程序简易流程。公司提供的子程序编译不能通过。
这人很懒,什么都没留下
hao
这人很懒,什么都没留下
U盘有时连接的上有时连接不上是什么问题啊?
这人很懒,什么都没留下
请高手指教: 我调用增强版子程序库 ch375hf6.lib,系统用的at89s52单片机,程序刚刚实现了初始化和检测
等功能,程序一编译就将近8K了,导致后面的功能无法进行;
但是我下在贵公司的一些程序,用的也是89C52,程序空间也应该不够才对的,
请问是什么问题,是我调用的子程序库 有问题吗? 谢谢
这人很懒,什么都没留下
你好,
我是USB初学者,我用了贵公司的CH375V,我用的是MSP430F147,在单步执行时,执行完第一个cmd(CMD_GET_STATUS)后;stat_Check的值是0x20而不是0x14,在判断U盘插入与否时,为什么依然还是0x20这个值呢,我用的U盘是清华同方,请问可以不?



// 修改为: WR 0,RO 1,A0 1,CS 0
void cmd(char cd)
{
P1OUT=cd;
P1DIR=0xff;
P2OUT&= 0xfe;
_NOP();
_NOP();
P2OUT&= 0xf7;
_NOP();
_NOP();
P2OUT |= 0x0f; // 修改为: WR 1,RO 1,A0 1,CS 1
_NOP();
P1DIR=0;
_NOP();
_NOP();
}
//WR 0,RO 1,A0 0,CS 0.
void wrd(char data)
{P1OUT=data;
P1DIR=0xff;
P2OUT &=0xfe;
_NOP();
_NOP();
P2OUT &=0xfd;
_NOP();
_NOP();
P2OUT &=0xf7;
_NOP();
_NOP();
P2OUT |= 0x0f;
P1DIR=0;
_NOP();
_NOP();
}

//WR 1,RO 0,A0 0,CS 0.
char re()
{
char temp;
P1DIR=0;

P2OUT &=0xfe;
_NOP();
_NOP();
P2OUT &=0xfd;
_NOP();
_NOP();
P2OUT &=0xfb;
_NOP();
_NOP();
temp=P1IN;
_NOP();
_NOP();
P2OUT |=0x0f;
return(temp);
}

char Wait_Int()
{
char temp;
temp=P2IN;
temp &= 0x10;
while (temp!=0)
{
temp=P2IN;
temp &= 0x10;
}
cmd(CMD_GET_STATUS);
temp=re();
return(temp);
}

void main()
{
int len,t=0;
long add=211;
WDTCTL = WDTPW + WDTHOLD;

for(t=0;t<64;t++)
{
a[t]=t;
}
t=500;

P1DIR=0; //初始化IO口
P2DIR=0x0f;
P2OUT|=0x0d; ///WR 1,RO 1,A0 0,CS 1.

cmd(CMD_GET_STATUS);
stat_Check=re(); //先读一下,让晶振起振
cmd(CMD_CHECK_EXIST); // 检查375工作与否
wrd(0xee);
stat_Check=re();

cmd(CMD_RESET_ALL);
stat_Check=re();

while(t--);
t=0;

cmd(CMD_SET_USB_MODE); //设置模式
stat_Check=re();
wrd(0x06);
stat_UsbMode=re();

while(Wait_Int()!=USB_INT_CONNECT); // u盘插上与否
_NOP();
_NOP();

cmd( CMD_DISK_INIT ); // u盘初始化
stat_Init=Wait_Int();

cmd(CMD_DISK_WRITE) ; // 写数据
wrd(i=add); //扇区号
wrd(i=(add>>8)) ;
wrd(i=(add>>16)) ;
wrd(i=(add>>24)) ;
wrd(1); //写1个扇区
for(i=1;i<9;i++)
{
stat_wr=Wait_Int();
if(stat_wr==USB_INT_DISK_WRITE)
{
len=64;
cmd (CMD_WR_USB_DATA7); //向375写数据
wrd(len);
while(len--)
{
wrd(a[t]);
t++;
}
for(t=0;t<64;t++)
{
a[t]=t;
}
t=0;
cmd(CMD_DISK_WR_GO);
}
else break;
}
if(i==9) stat_wr=Wait_Int();
else stat_wr=0xff;
}
这人很懒,什么都没留下
返回0x10说明是意外错误,可能是硬件时序错误或受干扰等
请问返回0x10怎么解决,谢谢!
这人很懒,什么都没留下
在使用CH375做 USB主机时,编写软件需要哪些函数、头文件和库啊?
这人很懒,什么都没留下
下载CH375LIB。ZIP,里面有库,头文件,C文件
E-MAIL:fqb@wch.cn TEL:025-52638375
我想驱动vista的ntfs文件系统,怎么做?或者怎么找资料?
请高手指点,谢谢。
sun
资料网上应该有,如微软官方;至于怎么做,看完资料,也许就知道了
交流中提高
正在做,问题很大啊
在学习中张大~~~
头大啊!
这人很懒,什么都没留下
只有登录才能回复,可以选择微信和github账号登录