有时候mCH375check();这一步能过去,有时候就过不去,这是怎么一回事呢?
mCH375check里面做了哪些事情,具体是哪个步骤过不去,有没有返回值!
void mCH375check(void ) { unsigned char d; delay2us(); xWriteCH375Cmd( CMD_CHECK_EXIST ); /* 测试工作状态 */ delay2us(); delay2us(); xWriteCH375Data( 0xee ); /* 测试数据 */ delay2us(); delay2us(); d=xReadCH375Data( ); delay2us(); /* 返回数据应该是测试数据取反 */ if ( d != 0x11 ) while(1); } 这是我的check的程序,返回d的值总是0x8c,难道是芯片坏呢?
估计硬件上面还有问题,需要详细说明下你的硬件以及三个读写子函数.
这是我的usb电路原理图
RXD和TXD我已经断开了,现在RXD是悬空的。
晶振引脚应该是接到XI引脚,而不是XO引脚.