用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設(shè)置(浮空輸入和上拉輸入都試過)沒問題; 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模擬并口;