[求助]CH375B初始化函数CH375Libinit()返回0xff

我用stc89c55rd和ch375b搭建了硬件平台,在一开始ch375b初始化没有问题,今天突然不能初始化了,在执行CH375Libinit()函数时,返回0xff,说是版本太低,这个问题要怎么解决啊?谢谢各位高手了~

下面是初始化函数代码

/* 初始化函数 输入:无 输出:uint8 状态 功能:CH375,准备U盘读写. */ uint8 InitAll(void) { uint8 state;

delaymS(500); // CH375Reset(); delaymS(200); LED1 = 0;//LED灯亮

state = CH375LibInit(); if(state == ERR_SUCCESS) { LED2 = 0; state = CH375DiskConnect(); while(state != ERR_SUCCESS) { delaymS(30); state = CH375DiskConnect(); } LED3 = 0; state = CH375DiskReady(); if(state == ERR_SUCCESS) { LED1 = 1; LED2 = 1; return 1; } } return 0; }

请问下你使用的是哪个LIB库以及编译环境,只有这些知道了才能确认你的问题。还有你的LIB库是怎么添加的?


下载一个最新的库,更新库即可。


谢谢各位高手了~~

这个问题在更新了CH375HF6库之后解决了,但是又出现了0x81的错误。经过检查,CH375的25管脚是低电平,26管脚是高电平,起振电路没问题。还有可能是哪些线路出了问题呢?是不是有可能是软件的问题?

电路板的原理图是参照这个图做的。


25为低26为高是正确的。 你检查一下读写函数,做测试命令看一下。 你做测试命令,按照如下流程: 发命令:0x06 写数据:0XAA 读数据,读到的数据应该是0X55,否则不对 发命令:0x06 写数据:0X55 读数据,读到的数据应该是0Xaa,否则不对

一般都是读写时序有问题


好像上传不了图。板子是参考CH375DS1.pdf里面的并口方式做的。


可以做成PDF,压缩上传


大师,我用下面的程序测试了一下,返回值一直为0xaa,这样一来,ch375的电路是不是就是没问题了?

下一步应该怎么检查呢?

LibInit总是返回0x81错误。

谢谢各位大师指教了~

while(1) { CH375_CMD_PORT= CMD_CHECK_EXIST; CH375_DAT_PORT= 0x55; i = ~0x55; P1 = CH375_DAT_PORT; if(CH375_DAT_PORT!= i) { for(i=80;i!=0;i--) { CH375_CMD_PORT=CMD_RESET_ALL; delayuS(40); } CH375_CMD_PORT=0; delaymS(100); } }

电路图在附件里面上传了。UploadImages/2010101216175473.zip


按照楼上的测试,你这个并不能说明你的硬件没有问题: 发命令:0x06 写数据:0XAA 读数据,读到的数据应该是0X55,否则不对 发命令:0x06 写数据:0X55 读数据,读到的数据应该是0Xaa,否则不对 还有你编译之后生成的RAM多少?硬件上面没什么问题。


额……很诡异……

写0x55的时候得到的是0xaa,

而写入0xaa的时候得到的是0xd5

keil提示data = 113.4 xdata = 30749

我用的是stc89c55rd,外部有一块62256……


那就说明你的“D7”引脚有问题。仔细检查下硬件连接上面,按照你的现象是始终拉高了。


另外还可能是A0引脚有问题。可能在读数据的时候A0为高电平。


谢谢各位大师了,检测了N多天最后发现是CH375的A0管脚虚焊了。


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