使用CMD_CHECK_EXIST命令,出现异常,请支持一下.多谢.

我使用CH375B,CH376S,,两种芯片.

----------------------------------------------- WriteCH375Cmd(CMD_CHECK_EXIST); WriteCH375Data(0x55); test=ReadCH375Data(); //test=0xaa,结果正确 接着再测试 WriteCH375Cmd(CMD_CHECK_EXIST); WriteCH375Data(0xaa); test=ReadCH375Data(); //test=0xd5,结果错误

后面又反复做了一些数据的测试,结果发现:读到的数据的最高位一直为1,所以只要测试的数据的最高位为0的,取反后数据都是正确的,如果测试的数据最高位为1的,最高位不会有取反操作。但其它位也是正确的.

上面测试结果 : 0x55=0101 0101B 取反 0xaa=1010 1010B 0xaa=1010 1010B 取反 0xd5=1101 0101B

-------------------------------------------------------------

请问是怎么回事,请于支持,,多谢.

我也有同样的问题,哪位高手帮忙解决一下吧


补充几点,开始用的测试数据0x55进行测试,返回0xaa以为通过的,在后面执行的CMD_SET_USB_MODE指令,参数0x02,返回的是0x59(正确状态应该是0x51)。

电源用的3.3v,并口模式与上位机通信,电脑设备管理器中能看到芯片

希望各位哥哥姐姐不吝赐教。。谢谢了


to2楼.

你电脑上能看到芯片,那说明程序也正确运行了啊... 跳过这个部分,也是能正确执行后续的程序的. 我这边也是这个样子,,忽略它,也能读写U盘.

是不是芯片设计上的原因啊..

有没有官方回复下.多谢了.


如果按照你说的现象,可能是D7数据线有问题,建议你去查下这个数据线。


数据线没问题的,难道初始化已经成功了??

gao1986是我同学


如果你说的数据线没问题,那么在做测试命令的时候,返回数据的时候怎么会出现不是取反的数据呢?


TO 4楼

如果按照你说的现象,可能是D7数据线有问题,建议你去查下这个数据线。

-------------------------------------- 关键是我跳过这个测试,我后面都没有问题. 那说明数据线D7是没有问题的!


检查CH37X芯片的A0信号 是不是有问题


另外把你的读写函数贴出来看看,要么是硬件连接有问题,要么是时序有问题。


程序就是你们官方提供的51单片机总线方式,一个字母都没有改,,只修改了宏定义的XDATA的地址。

之后的U盘读写都是成功的,地址没有问题。


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