用CH375读U盘时等不到中断, 代码如下: void CH375_Test(void) { UINT8 err = 0; UINT32 i = 0;
CH375_PortInit();
// xWriteCH375Cmd(CMD_RESET_ALL); // OSTimeDlyHMSM(0, 0, 1, 0);
err = CH375LibInit(); //这里成功
gErr = err;
// OSTimeDlyHMSM(0, 0, 1, 0);
while(1) { while(CH375DiskStatus != DISK_CONNECT) xQueryInterrupt(); // 这里有读到中断, 说明引脚和单片机(stm32)连接以及port设置(浮空输入和上拉输入都试过)没问题; OSTimeDlyHMSM(0, 0, 0, 200); for(i = 0; i < 5; i++) { Delay_Ms(100); if(CH375DiskReady() == ERR_SUCCESS) // 这里就一直在等中断, 等不到, 用while ( xReadCH375Cmd( ) & 0x80 ); 和while ( CH375_INT_WIRE ); 两种方式都试过, 前者读出来一直为0x80; { break; } }
mStrcpy((char*)mCmdParam.Open.mPathName, "/TEST.TXT"); err = CH375FileOpen(); if(err != ERR_SUCCESS) break;
可以看到U盘会闪几下, 就不动了;
用串口方式读是可以的, 只不过速度实在太慢, 所以就换成了并口, 用stm32的GPIO模拟并口;